Используя SOLR 7.1.3, я пытаюсь реализовать подсказку.
Основные предложения работают, но в моем индексе есть специальные термины, которые выглядят так:
[999-99-9]
Теперь, когда я запускаю подсказку, используя
q=myfield:[999-9*
Я получаю предложения, но без дефисов и квадратных скобок.
sugggestions:[{ "term":"999 99 9" ...}]
Мое ожидание будет:
sugggestions:[{ "term":"[999-99-9]" ...}]
Как мне сказать SOLR включить квадратные скобки и дефисы?
Вот мой советчик:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">FreeTextLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">fulltext</str>
<str name="ngrams">3</str>
<float name="threshold">0.004</float>
<str name="highlight">false</str>
<str name="buildOnCommit">false</str>
<str name="storeDir">mySuggester</str>
<str name="separator"> </str>
<str name="suggestFreeTextAnalyzerFieldType">text_general</str>
</lst>
</searchComponent>
Я также попробовал это (что не дает никаких результатов):
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">infixSuggester</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">fulltext</str>
<str name="payloadField">fulltext</str>
<str name="suggestAnalyzerFieldType">text_general</str>
</lst>
</searchComponent>
[Edit] вот мое определение fieldType:
<fieldType name="myField" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="'"
replacement="" replace="all" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="'"
replacement="" replace="all" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>