Solr вместе с нечеткостью возвращает 0 результатов - PullRequest
0 голосов
/ 08 мая 2018
  • SOLR 6.4.1

мы столкнулись с проблемой нечеткой четкости и прохождения через 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 в действии.

Спасибо!

1 Ответ

0 голосов
/ 08 мая 2018

Когда вы выполняете нечеткий поиск (или поиск по шаблону, и т. Д. - любой поиск по одному термину может быть оценен по нескольким токенам на стороне индекса), цепочка анализа не применяется (за исключением фильтров , которые многозначные (обычно это LowercaseFilter и ничего более).

Решение обычно состоит в том, чтобы нормализовать токены при их входе, возможно, с помощью фильтра, написанного специально для данных, которые вы ищете.

...