У меня есть действительно большое (5000 + символы) текстовое поле в SOLR под названием Описание. До сих пор это работает отлично для поиска и выделения. Если я выполняю поиск и нет никаких выделенных частей затем, я просто показываю первые 300 символов. То, что я хотел бы сделать, просто возвратить эти 300 символов в результате SOLR.
Я хотел бы сделать это, потому что при тестировании я получаю улучшенную производительность, если я возвращаю меньший результат. Это, вероятно, потому что документ XML меньше так меньше времени на проводе, и затем обработка быстрее, потому что документ меньше.
Я думал об использовании нового поля, которое просто сохранило первые 300 символов. Я думаю, что это работало бы, но я задавался вопросом, было ли лучшее или более встроенное решение.
То, что вы ищете, - это выделение hl.maxAlternateFieldLength ( http://wiki.apache.org/solr/HighlightingParameters#hl.maxAlternateFieldLength ).
Вам нужно будет определить это поле как собственное альтернативное поле. Если вы хотите выделить поле Описание
, параметры запроса выделения будут следующими:
hl=true
hl.fl=Description
f.Description.hl.alternateField=Description
hl.maxAlternateFieldLength=300
Наконец, чтобы исключить поле Описание
из результата запроса, вам придется исключить его из параметр запроса fl
:
fl=score,url,title,date,othermetadata