1

これがバグなのか機能なのかはわかりませんが、Solr NGramFilterFactory は数値では機能しません。

これが私のフィールドタイプです:

<fieldType name="phone_test" class="solr.TextField" positionIncrementGap="100">
   <analyzer type="index">
      <tokenizer class="solr.LowerCaseTokenizerFactory"/>
       <filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="30" side="front" />
   </analyzer>
   <analyzer type="query">
      <tokenizer class="solr.LowerCaseTokenizerFactory"/>
   </analyzer>
</fieldType>

Solr 管理インターフェイスでアナライザーを使用して「ビジネス」などの単語を入力すると正常に機能しますが、12345678 などの数字を入力すると機能しません。

私が欲しいのは、電話番号の一部を検索することです。電話番号として 123456789 があり、456 または 6789 を検索すると、ヒットするはずです。

何か案は?

4

1 に答える 1

2

LowerCaseFilterFactoryの定義は次のとおりです。

すべての文字を小文字にし、文字以外を削除してトークンを作成します。

数字が文字ではないため、数字が削除されています。KeywordTokenizerFactoryまたはStandardTokenizerFactoryを使用することをお勧めします。これらは数値入力を適切に処理する必要があるためです。

于 2013-01-28T19:53:40.620 に答える