0

処理しようとしているクエリがあります。検索しましたが、答えが見つかりませんでした。何か間違ったことをしています。検索したいのは %asd% ですが、代わりに asd% の結果が得られます。

私のフィールドタイプはこれです、

<fieldType name="text_general_edge_ngram" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.LowerCaseTokenizerFactory"/>
            <filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.LowerCaseTokenizerFactory"/>
        </analyzer>
    </fieldType>

私のクエリは name:asd です。それは私のクエリですか、それともフィールド タイプですか? ありがとうございました :)

4

1 に答える 1

2

のような検索を行いたい場合%asd%、ngram フィルターは必要ありません... 基本的に、solr は検索~で単一の文字と*複数の文字を使用します...

例: name:asd~will が一致するasda asdb asdcなど while name:asd*will が一致するなどなので、一致またはおよびforまたはasdasadad asdfgkhjfgklを使用できますname: ~asd~basdfeasdkname:*asd*aldkaasdsdfsdoippopasdoppm

私の知る限り、この種の検索にngramは必要ありません

于 2012-11-05T00:16:27.483 に答える