0

私は、DataImportHandler を使用してかなり単純な SOLR 検索を実装しています。フィールドの 1 つはビジネスの名前です。ビジネス名と説明を含む検索可能なフィールドを作成します。

問題は、CED という会社を検索しても見つからないことです。私はそれがそこにあることを知っています。より一般的な検索では、結果が返されます。

おもしろいことに、CED という会社も指数に含まれています。CED を検索してもその会社は返されませんが、CED を検索しても返されます。ただし、CED を検索しても会社の CED は返されません。

これを書いていると、おそらく必要なことはビジネス名フィールドを変更して、そのまま消費され、フィルターが単語や句読点の実際の組み合わせを混乱させないようにすることだと思いますか?

4

1 に答える 1

2

WhitespaceTokenizerFactory を使用した通常の構成で機能します。
これにより、空白にトークンが作成され、テキストが小文字になり、索引付けされた用語と一致します。
CED は CED および ced と一致します

<fieldType name="text" class="solr.TextField">
    <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
       <filter class="solr.LowerCaseFilterFactory"/>    
    </analyzer>
</fieldType>

C.E.D, c.e.d or ced一致させたい場合は、 WordDelimiterFilterFactoryフィルターC.E.D or c.e.d or cedをチェックする必要があります

于 2013-05-29T10:45:09.117 に答える