3

Solrとのあいまい一致を実験しようとしています。

ドキュメントのインデックス付きfirst_nameフィールドで、「MYNEWORGANIZATION20SEP2011」と記載しました。実際には、「My New Organization 20-Sep-2011」という単語でしたが、スペースやその他の文字を削除しました。

クエリ「MYNEWORGANIZATION20SEP2011」として直接検索すると、単語の上(スペースなし)で、Solrは上記のドキュメントIDとして1つの結果になります。完璧です!

しかし、この文字列から2つの文字を削除し、クエリで「MYNEWORGANIZATION20SEP20〜0.8」を指定すると、結果は0になります。

新しいクエリの場合、MYNEWORGANIZATION20SEP20のメインドキュメントデータとの距離は2です。したがって、一致率は90%を超える必要があるため、データを検索する必要があります(クエリでは、80%の一致のみを指定しています。

ところで、first_nameを「rushik」のように6〜7文字として使用し、「rushik〜0.75」のようなファジークエリを提供すると、検索は正しく機能し、データが返されます。

上記の両方の場合で、フィールドタイプを「text_general」として使用しています-solr3.3を使用しています。

Solrでのあいまい検索にcharsの制限はありますか、それともどこでも構成できますか?-デフォルトのsolr構成を使用していますが、solrconfig.xmlでは何も変更されていません

スペースを手動で削除せずに、ファジークエリを使用して文字列のように「MyNewOrganization20-Sep-2011」を検索するためのより良い方法はありますか。

ありがとう、ルシク。

4

1 に答える 1

2

あなたのフィールドで行われたインデックス時間分析は何ですか?
テキストの一般フィールドは通常、空白のトークナイザー、ストップワードフィルター、ワード区切り文字、小文字のフィルターを通過します。この場合、インデックス付けされたフィールドは完全に異なります。
My New Organization 20-Sep-2011-> MYNEWORGANIZATION20SEP2011からの変換は、インデックス作成前に行われますか?
また、最も重要なあいまい検索では、クエリ時間の分析は行われません。

フィールドタイプを文字列または小文字のフィールドタイプとして使用することをお勧めします。

    <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
    </fieldType>

小文字を使用してクエリをテストします。

于 2011-09-22T06:18:56.837 に答える