мы столкнулись с проблемой нечеткой четкости и прохождения через SnowballPorterFilterFactory для German2.
<fieldType name="text_de_de" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="lang/stopwords_de.txt" ignoreCase="true"/>
<filter class="solr.ManagedStopFilterFactory" managed="de_DE"/>
<filter class="solr.SynonymFilterFactory" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.ManagedSynonymFilterFactory" managed="de_DE"/>
<filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1"
generateWordParts="1" generateNumberParts="1" catenateWords="1"
catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2"/>
</analyzer>
</fieldType>
Кроме того, в нашей конфигурации запроса мы добавляем "~" для нечеткости.
{q=field_text_de_de_mv:XYZ~}
Как синтаксический анализатор запросов, стандартный синтаксический анализ ака.Люцен используется.
Прежде всего, мы предполагаем, что размытость применяется до того, как вы остановитесь через SnowballPorter.Значение:
SearchTerm: Xyzker ->(query) Xyzker~ (check for (XyzKer, XyzXer, Xyzer etc..)) -> stem(Xyzxer, Xyzxer... ) HIT -> deliver result
Это правильно?Существуют ли какие-либо рекомендации по использованию нечеткости с или без основ (https://lucene.apache.org/solr/guide/6_6/the-standard-query-parser.html#TheStandardQueryParser-FuzzySearches)?
Итак, теперь к фактическому поведению:
Индексация "Xyzker" с помощью fieldtype text_de_de, чтобы применение stemmingЗапрос "Xzyser" (содержащий одну опечатку для k). Ожидаемый результат: хит "Xyzker", когда по умолчанию нечеткость (~).
Мы получаем 0 результатов. Может кто-нибудь уточнить? Или датьнекоторые подсказки / чтения? Я уже проверил Solr в действии.
Спасибо!