Я делаю функцию автоматического предложения, используя прошлые поиски в solr. Synonyms.txt содержит список типичных опечаток / орфографических ошибок и т. Д. Он настроен для запуска по индексу и с помощью инструмента anaysis в администраторе. Я вижу, что он работает правильно - однако, похоже, он не применяется к оперативным данным.
Field type :
<field name="suggest_ngrams" type="text_ngram" indexed="true" stored="false" multiValued="true" />
Schema:
<fieldType name="text_ngram" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt" enablePositionIncrement="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt" enablePositionIncrement="true"/>
</analyzer>
and an example of synonyms.txt
watch, watches, watche, watchs => watch
Так что во время индекса я бы ожидал, что «watche» будет заменен на «watch» - похоже, это не так (хотя инструмент анализа говорит, что это именно то, что он делает.
Чтобы было ясно, если я запрашиваю solr (? Q = watc), в результатах появляется фраза "watche"
Любые идеи или идеи будут оценены, так как я думаю, что все настроено правильно
Спасибо