Поиск последних четырех чисел в данном номере

Я пытаюсь найти и сопоставить последние четыре цифры с 10-значным числом.

пример

  • 7154226465
  • 7152436464
  • 7152348464

Если я ищу 646, он должен соответствовать первым двум числам. Чтобы быть точным, я ищу поиск суффикса, который совпадает с последними 4 цифрами индексированного числа. Ниже приведена схема

<fieldType name="text_suggest" class="solr.TextField" positionIncrementGap="100">
         <analyzer type="index">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.TrimFilterFactory" />
            <filter catenateAll="1" catenateNumbers="0" catenateWords="0" class="solr.WordDelimiterFilterFactory" generateNumberParts="0" generateWordParts="0" splitOnCaseChange="0"/>
            <filter class="solr.ReverseStringFilterFactory"/>
            <!--<filter class="solr.NGramFilterFactory" minGramSize="1" maxGramSize="17"/>-->
             <filter class="solr.EdgeNGramFilterFactory" minGramSize="7" maxGramSize="10" side="front"/>
            <filter class="solr.ReverseStringFilterFactory"/>

         </analyzer>
         <analyzer type="query">
            <tokenizer class="solr.KeywordTokenizerFactory" />
            <filter catenateAll="1" catenateNumbers="0" catenateWords="0" class="solr.WordDelimiterFilterFactory" generateNumberParts="0" generateWordParts="0" splitOnCaseChange="0" />
            <filter class="solr.LowerCaseFilterFactory"/>            
            <filter class="solr.TrimFilterFactory" />    
         </analyzer>
        </fieldType>

EdgNGram с side="back" не работает в Lucene 4.4. Я использую Solr v4.9.1

1 ответ

Если вы хотите искать только последние 4 цифры, то переходите к EdgeNGramFilterFactory это путь Попробуй это:

<filter class="solr.ReverseStringFilterFactory"/>

<filter class="solr.EdgeNGramFilterFactory" minGramSize="4" maxGramSize="4" />

<filter class="solr.ReverseStringFilterFactory"/>

Небольшая заметка. Помимо использования ngrams, традиционный подход для эффективной поддержки лидирующих подстановочных знаков заключается в обращении строки и выполнении запроса префикса.

Другие вопросы по тегам