1

フィールドタイプがtext_wsのドキュメントのフィールドに、アンダースコアで区切られたキャメルケースの値(eq "SimplyShopping_Rediff")があります。

<fieldType name="text_ws" class="solr.TextField"
    positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.PatternTokenizerFactory" pattern=";" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.PatternTokenizerFactory" pattern=";" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>

Shopping または Rediff で検索できるように、インデックスを再作成せずにクエリ アナライザーを変更する方法はありますか。

4

1 に答える 1

0

いいえ、あなたの場合は違います。

定義した fieldType は、パターン;を使用してテキストをトークン化します。テキストのトークン化とは、一連の単語を索引付けされたトークン (用語または単語) に分割することを意味します。

あなたの例SimplyShopping_Rediffにとどまる;ので、テキスト全体が1つのトークンとして認識され、正確にそのトークンとしてインデックスに取り込まれます。大文字、小文字、ステム、またはフィルター処理することはできますが、それ以上分割することはできません。

クエリ時に必要な方法でトークン化するように fieldType を変更したとしても。インデックス内のトークンは、インデックス時に既に間違った方法でトークン化されているため、まだ欠陥があります。そのため、検索の新しい正しいトークン化された用語は、インデックスで何もヒットしません。インデックスにヒットせず、検索結果もありません。

solr リファレンス ガイドには、Analyzers、Tokenizers、および Filters に関する適切なセクションがあります。インデックス全体を再構築するには非常にコストがかかる可能性があるため、最初にこれを読むことをお勧めします。

于 2013-10-30T07:18:39.377 に答える