1

Solrスキーマ(.xml)で次のように宣言された「text_general_rev」ファイル型があります。

<fieldType
    name="text_general_rev"
    class="solr.TextField"
    positionIncrementGap="100">
    <analyzer type="index">
       <tokenizer class="solr.KeywordTokenizerFactory" />
       <filter
            class="solr.ReversedWildcardFilterFactory"
            withOriginal="true"
            maxPosAsterisk="2"
            maxPosQuestion="2"
            maxFractionAsterisk="1.0" />
        <filter class="solr.LowerCaseFilterFactory" />                
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>

「artist」フィールドが「text_general_rev」に設定された2つのSolrドキュメントがあります。

Document1のアーティストは「ジミージョーンズティムココミミ」です

Document2のアーティストは「JonesJimmyTimBoboMimi」です。

「何かから始める」種類の検索を行うと、次のように機能します。

+artist:(J*)ドキュメント1と2を返します

+artist:(Jim*)ドキュメント1を返します

+artist:(Jimmy Jo*)ドキュメント1を返します

一方、同様のクエリですが、タイプが「何かで終わる」は同様に機能しません。

+artist:(*Mimi)ドキュメント1と2を返します(これは問題ありません)

+artist:(*Coco Mimi)0の結果を返します(これは問題ありません)

+artist:("*Coco Mimi")0の結果を返します(これは問題ありません)

+artist:(*co Mimi)0の結果を返します(これは問題ありません)

+artist:("*co Mimi")0の結果を返します(これは問題ありません)

私の質問は、なぜこれが起こっているのかということです。それは正常ですか?もしそうなら、私は何が欠けていますか?maxFractionAsteriskに複数の値を試しました(0、0.5、1など。これはReversedWildcardFilterFactoryの唯一の構成パラメーターであり、完全には理解していません)。

4

0 に答える 0