Я отправляю запрос в Solr, чтобы получить предложения для слова, которое выглядит так:
http://localhost:8983/solr/mysearchindex/select?q=_templatename:Page&facet.field=pagecontent_t&facet.prefix=book&rows=0&facet=true&version=2.2&facet.sort=true
pagecontent_t - это вычисляемое поле типа text, заполненное содержимым элементов Sitecore. Его конфигурация:
<field fieldName="PageContent" returnType="text">Feature.Search.ComputedFields.PageContentField, Feature.Search</field>
Конфигурация * _t полей в schema.xml:
<dynamicField name="*_t" type="text_general" indexed="true" stored="true" />
<fieldType name="string" class="solr.TextField" sortMissingLast="true">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
Это работает для слов без дефисов, но я ничего не получаю для слов, включая дефис.
Я попытался использовать скопированное поле "pagecontent_s" типа string. Используя это, я получаю результаты с дефисами, но весь контент страницы перезапускается вместо того, чтобы просто соответствовать словам для подсказок.
Чего мне не хватает? Какой лучший способ получить предлагает работать с дефисами в поисковом слове?