Я хочу добиться более точных результатов поиска, когда пользователь вводит больше слов, используя оператор AND между результатами сострадания токенов.
Я попытался установить qo=AND
, но не работает и возвращает результаты, которые содержат только одно из введенных слов.
Например, я использую для поиска поля анализатор, например:
<fieldType name="serch_text" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EdgeNGramFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.TrimFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EdgeNGramFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
<filter class="solr.TrimFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
, поэтому для запроса searching:(hel world)
Я хочу применить анализатор для каждого слова и сделать AND между результатами.На практике я ожидал что-то вроде этого:
(hel сравнить с h, он, hel, hell, hello) AND (world сравнить с w, wo, ...)
и возвращать результаты, если совпадают оба.