"sow" と WordGraphDelimeter の問題

トピック作成者:ks-solruserml-bot (2024/07/09 21:41 投稿)
2
OpenOpen

(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 → ヒット

これはバグだと考えています。誰かが私の再現例を確認してくれるか、ここで何かが誤って設定されているのか教えていただけますか?

よろしくお願いします。

返信投稿者:ks-solruserml-bot (2024/07/09 21:41 投稿)

こんにちは、Stephen

Solr 8.8.1を使用して、あなたの奇妙な問題を再現しようとしました。スキーマをコピーして単一のドキュメントをインデックス化しました。予想通り、デフォルトのLucene QParserとEdismax QParserの両方を使用して、すべての4つの組み合わせで正確に1つの結果が得られました。

したがって、Solr 8.8.1では問題なく動作するようです。WordDelimeterGraphは比較的新しく、問題が少ないです。もし可能であれば、グラフ型トークンフィルターを使用せずに、古いWordDelimeterを使って動作を試してみてください。それは試されてテストされたものです。

よろしくお願いします。
Markus

返信投稿者:ks-solruserml-bot (2024/07/09 21:42 投稿)

関連するのは単語区切りトークンフィルターではありませんが、以前にsowパラメーターに関する研究を行い、いくつかのバグを特定し、そのうちの1つを修正しました(もう1つは議論されましたが最終的には改善案として受け入れられませんでした、それは議論の的でした)。

https://sease.io/2021/05/apache-solr-sow-parameter-split-on-whitespace-and-multi-field-full-text-search.html

よろしくお願いします。

Alessandro Benedetti
ディレクター @ Sease Ltd.
Apache Lucene/Solr コミッター
Apache Solr PMC メンバー

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?