Solr 8でのedismaxの問題について、mmとq.opの問題が発生しています

トピック作成者:ks-solruserml-bot (2024/06/20 14:59 投稿)
4
CloseClose

(The bot translated the original post https://lists.apache.org/thread/86b09hokcjtpjjnp98scbw4475m1vtxz into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

私のedismaxクエリについて、mmとq.opを使用すると奇妙な結果が得られるとのことですね。特に、Solr 8.11でq.opがmmよりも優先されているように見えます。

他のケース(Solr 4でのdismaxとedismax、またはSolr 8でのdismax)では、通常はドキュメントに記載されているように、mmがq.opよりも優先されます。

以下は、私のクエリとその結果、生成されたパースドクエリです:

Solr 8.11 - dismax

numFound = 142
+(
  ((text_srch:champion)^0.2 | (title_exact:champion)^0.9 | (title_srch:champion)^0.6 | (text_exact:champion)^0.5)
  ((text_srch:croissanc)^0.2 | (title_exact:croissance)^0.9 | (title_srch:croissanc)^0.6 | (text_exact:croissance)^0.5)
)

Solr 8.11 - edismax

numFound = 26 (q.opが使用されているような挙動)
+(
  +((text_srch:champion)^0.2 | (title_exact:champion)^0.9 | (title_srch:champion)^0.6 | (text_exact:champion)^0.5)
  +((text_srch:croissanc)^0.2 | (title_exact:croissance)^0.9 | (title_srch:croissanc)^0.6 | (text_exact:croissance)^0.5)
)

Solr 8.11 - edismax と q.op=AND を省略

numFound = 142
+(
  ((text_srch:champion)^0.2 | (title_exact:champion)^0.9 | (title_srch:champion)^0.6 | (text_exact:champion)^0.5)
  ((text_srch:croissanc)^0.2 | (title_exact:croissance)^0.9 | (title_srch:croissanc)^0.6 | (text_exact:croissance)^0.5)
)

Solr 4.10 - dismax

numFound = 142
+(
  (text_srch:champion^0.2 | title_exact:champion^0.9 | title_srch:champion^0.6 | text_exact:champion^0.5)
  (text_srch:croissanc^0.2 | title_exact:croissance^0.9 | title_srch:croissanc^0.6 | text_exact:croissance^0.5)
)

Solr 4.10 - edismax

numFound = 142
+(
  (text_srch:champion^0.2 | title_exact:champion^0.9 | title_srch:champion^0.6 | text_exact:champion^0.5)
  (text_srch:croissanc^0.2 | title_exact:croissance^0.9 | title_srch:croissanc^0.6 | text_exact:croissance)^0.5
)

edismaxのクエリに何か問題がらうでしょうか?
Dminique

返信投稿者:ks-solruserml-bot (2024/06/20 15:00 投稿)

私の理解では、q.op=ANDを設定するとmmは100%に設定されると考えています。そして、それが明示的なmm設定よりも優先されることも驚きではありません。

どちらか一つを選択するべきであり、おそらくedismax/dismaxではmmを選択すべきです。q.opパラメータは、mmをサポートしないLuceneクエリパーサーに対してより関連性があります。

ありがとうございます。
Shawn

返信投稿者:ks-solruserml-bot (2024/06/20 15:00 投稿)

こんにちは、Shawn,

dismaxとedismaxの両方について、ドキュメントによると、q.opはmmが設定されていない場合にのみ使用され、q.op=andはmm=100%に等しく、q.op=orはmm=0%に等しいと説明されています。dismaxではうまく動作しますが、なぜかSolr 8のedismaxではうまく動作しないようです。

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

返信投稿者:ks-solruserml-bot (2024/06/20 15:00 投稿)

私だったら、この件についてJiraで問題を報告して、動作とドキュメントを一致させるようにするべきだと思います。おそらく、ドキュメントを変更するだけの可能性もあります。dismaxとedismaxの両方において、mmがq.opより優先されるべきだと考えています。

ありがとうございます。
Shawn

返信投稿者:ks-solruserml-bot (2024/06/20 15:00 投稿)

あなたのクエリは「q=Champion Croissance」ですので、別の考慮すべきパラメータがあります。それは「sow」で、trueまたはfalseになります。

edismax、mm、sowに関するJiraの問題を検索して、関連する報告を確認してください。

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

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

KandaSearch

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

投稿の削除

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