5

StandardTokenizerそのため、 (およびClassicFilterfactoryLowercaseFilterFactoryおよび)を使用して入力とクエリを処理する Solr インスタンスがありますStopfilterfactory

私のインデックスには、アンダースコアで区切られた名前のファイルが多数あります (例: some_indexed_file.jpg)。

some_indexed_file.jpgをクエリすると、探しているファイルが正しく返されることに気付きました。

ただし、代わりに , を検索するsome_indexed_file.jp*と (アスタリスクが付いています。ワイルドカードとして機能していると思われます)、私の理解では同様の結果が得られるはずですが、結果は得られません。

何が起こっているのか: solr がクエリを処理する方法について何か誤解していると思いますか?

編集: 要求に応じて、スキーマ XML 構成エントリを次に示します。

    <fieldType name="default" class="solr.TextField">
        <analyzer type="index">
            <tokenizer class="solr.StandardTokenizerFactory" />
            <filter class="solr.ClassicFilterFactory" />
            <filter class="solr.LowerCaseFilterFactory" />
            <filter class="solr.StopFilterFactory" />
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory" />
            <filter class="solr.ClassicFilterFactory" />
            <filter class="solr.LowerCaseFilterFactory" />
            <filter class="solr.StopFilterFactory" />
        </analyzer>
    </fieldType>



   <field name="filename" type="default" multiValued="true" omitNorms="false" termVectors="false"/>
4

1 に答える 1

2

さて、もう少し調査した結果、この問題は解決しました。基本的な問題は、Solr がテキスト分析をワイルドカード クエリに適用しないことです。

これは、 と完全に一致するものを検索していたことを意味しsome_indexed_file.jp*ます。ただし、ファイル名がインデックス化されると、「some」「indexed」および にトークン化され、file.jpgこの検索用語と一致しません。
検索はsome_indexed_file.jpg適切にトークン化されていたため、正しい結果が返されました。

于 2012-11-19T11:22:48.693 に答える