Выделение проблемы с Solr 8.2 - PullRequest
2 голосов
/ 05 марта 2020

Частичное выделение для 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 Ответ

1 голос
/ 05 марта 2020

Добавьте 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

Вот подробная документация для выделения. Страница выделения Solr

...