Выявление проблемы с solr 8.2
Частичное выделение для solr 8.2
у меня не работает нормально. Я могу выполнить частичный поиск, используяNGramTokenizerFactory
. Но подсветка, похоже, сейчас не работает.
Вот определение типа поля:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" maxGramSize="15" minGramSize="1"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Вот мое поле:
<field name="title" type="text_general" multiValued="true" indexed="true" stored="true"/>
Запрос:
http://10.232.208.141:8986/solr/up1/select?df=title&hl.fl=title%2Ccontent &hl.simple.post=%3C%2Fb%3E&hl.simple.pre=%3Cb%3E&hl=on&q=digi&rows=1
Ожидаемый результат:
"title":["AgencyPortal <b>Digi</b>tal Engagement Solution Integration—Case Study | Cognizant"]}},
Токовый выход Выделите:
"title":["AgencyPortal Digital Engagement Solution Integration—Case Study | Cognizant"]}},
1 ответ
Решение
Добавить termVectors="true" termPositions="true" termOffsets="true"
атрибуты к вашему полю.
Ваше поле будет выглядеть так.
<field name="title" type="text_general" indexed="true" stored="true" required="true" multiValued="true" termVectors="true" termPositions="true" termOffsets="true"/>
Попробуйте добавить в запрос следующее.
&hl.q="queryTerm"&hl.usePhraseHighlighter=true&hl.useFastVectorHighlighter=true
Вот подробная документация по странице Highlighting.. Solr Highlighting Page