Как вернуть только усеченную часть поля в SOLR? - PullRequest
5 голосов
/ 10 августа 2010

У меня действительно большое (более 5000 символов) текстовое поле в SOLR с именем Описание . Пока что он отлично работает для поиска и выделения. Если я выполняю поиск и нет выделенных частей, я просто показываю первые 300 символов. То, что я хотел бы сделать, это просто вернуть 300 символов в результате от SOLR.

Я хотел бы сделать это, потому что при тестировании у меня улучшается производительность, если я возвращаю меньший результат. Вероятно, это связано с тем, что документ XML меньше, поэтому меньше времени на соединение, а затем обработка выполняется быстрее, потому что документ меньше.

Я подумал об использовании нового поля, в котором хранятся только первые 300 символов. Я думаю, что это сработает, но мне было интересно, есть ли лучшее или более нативное решение.

1 Ответ

7 голосов
/ 11 августа 2010

То, что вам нужно, это подсветка hl.maxAlternateFieldLength (http://wiki.apache.org/solr/HighlightingParameters#hl.maxAlternateFieldLength).

. Вам нужно будет определить поле как его собственное альтернативное поле. Если вы хотите выделить поле Description,параметры запроса выделения могут быть такими:

hl=true
hl.fl=Description
f.Description.hl.alternateField=Description
hl.maxAlternateFieldLength=300

Наконец, чтобы пропустить поле Description в результате запроса, вам придется исключить его из параметра запроса fl:

fl=score,url,title,date,othermetadata
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...