0

私のデータベースには「Sumit」としてfist_nameが含まれており、検索すると次のような結果が得られます first_name:Sumit~0.7 / first_name:Sumits~0.7

しかし、 -first_name:SUMIT~0.7 / first_name:SUMit~0.7 のように大文字と小文字を区別しない検索を試みた場合、何も返されません

私のschema.xmlの内容は次のとおりです。

    <fieldType name="custum_fuzzy_text" class="solr.TextField" omitNorms="false">
     <analyzer type="index"> 
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StandardFilterFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
     </analyzer>
     <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StandardFilterFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

誰でも助けることができますか?私は何か間違ったことをしていますか?それとも何か他のことをしなければなりませんか

4

2 に答える 2

2

アナライザー

On wildcard and fuzzy searches, no text analysis is performed on the search word.

あいまい検索のクエリ時に分析が行われないため、クエリ時に小文字のフィルターが適用されます。
クライアント側で処理する必要があります。

于 2013-01-11T10:47:15.760 に答える
1

どのバージョンの Solr を使用していますか? これは非常に重要です。また、実際に ' ' ( Summit など) または通常のテキストを使用してファジー クエリを実行していますか。この 2 つのケースも異なります。

'*' クエリを実行していて、Solr が 3.6 より前の場合、MultiTerm の問題(Fuzzy の技術名) が発生しています。

* を使用していない場合、何が問題なのかわかりません。Solr 4 では、管理者インターフェースにアナライザー セクションがあり、フィールド定義に対してテキストを入力して結果を確認できます。それを試してみてください。

最後に、メモとして、インデックスとクエリ アナライザー セットが同じ場合は、2 回記述する必要はありません。1 つの結合されたアナライザー セクション (type=... なし) を使用するだけです。

于 2013-01-11T14:47:38.213 に答える