Solr авто предложения с граненым поиском - PullRequest
0 голосов
/ 12 декабря 2018

Можно ли использовать грантовый поиск Solr и вернуть целое поле, где найдены входные данные?

AnalyzingInfixSuggester может вернуть целое поле, но мне также нужен подсчет сроков для каждого предложения, которое может предложить участникне предоставить.

1 Ответ

0 голосов
/ 13 декабря 2018

Действительно возможно вернуть все поле: просто токенизируйте все поле как один единственный токен.

В моем schema.xml (модифицированном из конфигурации sunspot-solr) у меня есть следующие поля:

<dynamicField name="*_text" stored="true" type="text" multiValued="true" indexed="true"/>
<field name="autocomplete" stored="true" type="autocomplete" multiValued="true" indexed="true"/>
<copyField source="*_text"  dest="autocomplete" />

И этот токенизатор:

<fieldType name="autocomplete" class="solr.TextField">
  <analyzer>
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

Как видите, поле автозаполнения токенизирует всю строку как один токен с использованием KeywordTokenizerFactory.Поэтому автозаполнение будет возвращать всю строку по запросу.

...