2

SOLR/Lucen に整数値があります。
その中で値を検索すると、人々はクエリにプレフィックスを追加することがあります: フィールドは ID です。したがって、id=900 のアイテムの場合、人々は「900」または「it900」または「it-900」を検索する可能性があります。これは、アイテムを表す方法 (categort +'-'+id) からです。

現在、コード内の数字以外の文字をすべて削除しています。論理的には、SOLRスキーマにこれを実現する簡単な方法があるはずです。

整数フィールドのクエリ アナライザーを定義してみました。ただし、Lucen は INT フィールド エラー メッセージのアナライザーが好きではありません。

FieldType: TrieIntField (int) does not support specifying an analyzer

フィールドは(上記のようにアナライザーが機能していません)

        <fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0">
            <analyzer type="query">
                <tokenizer class="solr.WhitespaceTokenizerFactory"/>
                <filter class="solr.PatternReplaceFilterFactory" pattern="(\d+)" replacement="$1" />
            </analyzer> 
        </fieldType>

これをどのように定義するか考えていますか?

4

1 に答える 1

0

代わりに (たとえば) テキスト フィールドにフィルターを指定し、その文字列フィールドの内容を int フィールドにコピーできますか? それはそれを処理する最も簡単な方法のようです。

于 2012-09-11T15:42:04.477 に答える