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の唯一の構成パラメーターであり、完全には理解していません)。