"sow" と WordGraphDelimeter の問題
トピック作成者:ks-solruserml-bot (2024/07/09 21:41 投稿)
2
(The bot translated the original post https://lists.apache.org/thread/f6jy1fgos8c3zdv1dp8ddddgqwwcolgq into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)
こんにちは、Solrユーザーの皆さん、
私は単語グラフデリミタとsowパラメーターの間に奇妙な動作を見つけました。単語グラフデリミタが呼び出されてsow=trueの場合、アルファナム分割が含まれる結果を見逃す可能性がありますが、これらは完全一致ではありません。つまり、ドキュメントに "ABC123 DEF456_GHI" がある場合、sow=trueとWordDelimeterGraphの組み合わせは、"def456" のクエリを正しく処理しないようです。以下に完全な再現例を示します。
再現例
- Solr 9を使用し、フィールド "test_en" のフィールドタイプ定義は以下の通りです。
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" catenateAll="1" preserveOriginal="1" splitOnCaseChange="1"/>
<filter class="solr.FlattenGraphFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1" generateNumberParts="1" catenateAll="1" preserveOriginal="1" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory"/>
</analyzer>
</fieldType>
- ドキュメントを作成します: {"id": 1, "test_en": ["ABC123 DEF456_GHI"]}
- 次のクエリを実行します。すべてがヒットするはずですが、1つの組み合わせがミスします。
- sow=true, q=def456 → ミス
- sow=true, q=abc123 → ヒット
- sow=false, q=def456 → ヒット
- sow=false, q=abc123 → ヒット
これはバグだと考えています。誰かが私の再現例を確認してくれるか、ここで何かが誤って設定されているのか教えていただけますか?
よろしくお願いします。
トピックへ返信するには、ログインが必要です。