У меня есть поле сконфигурировано какSolr Синтаксис запросов точное совпадение
<fieldType name="gtext" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<!--Needed for efficient trailling wildcard queries-->
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" side="front"/>
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"
maxPosAsterisk="2" maxPosQuestion="1" minTrailing="2" maxFractionAsterisk="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="0"
catenateNumbers="1"
stemEnglishPossessive="1"
catenateAll="0"
preserveOriginal="1"
/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="0"
catenateNumbers="1"
stemEnglishPossessive="1"
catenateAll="0"
preserveOriginal="1"
/>
</analyzer>
</fieldType>
Так что, когда я ищу, например забавной, он также будет возвращать смешно. Как я могу избежать этого поведения и иметь только забавное соответствие? Это из-за обратных подстановочных знаков?
Уверены ли вы? ngram-фильтр должен сделать трейлинг-групповые запросы более эффективными. Должен ли я избавиться от него? – Windys
вам нужна ngram для подстановочных знаков и почитайте для префиксных запросов. Тем не менее, упомянутые вами проблемы являются причиной ngrams, так как это может привести к частичным совпадениям. Вы можете использовать разные поля с и без ngrams. w/o не приведет к частичным совпадениям. – Jayendra
Спасибо за объяснение !!! – Windys