関数クエリが機能しない

トピック作成者:ks-solruserml-bot (2024/06/04 22:23 投稿)
2
CloseClose

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

こんにちは、

Solr 7.7.2を使用しています。以下のクエリが「techproducts」コアで期待した結果を返しません。

http://localhost:8983/solr/techproducts/select?debug=query&fq={!func}not(exists(popularity))&q=*:*&wt=json&rows=1

このクエリは「not」関数にもかかわらず、「numFound」で全てのドキュメントを返します。defType=edismaxを使用しても結果は同じです(ただし、'func'パーサーを指定しているので影響しないはずです)。
この問題はJIRAに報告する必要がありますか?

よろしくお願いします、
Rahul

返信投稿者:ks-solruserml-bot (2024/06/04 22:23 投稿)

こんにちは、

確か、{!func}クエリパーサーは、関数を使用して検索結果にスコアを割り当てるだけです。これを 'fq' パラメータで使用するのはあまり意味がありません。確かにこの点はあまりよく文書化されていません。

代わりに、frangeクエリパーサーに興味があるかもしれません:
https://solr.apache.org/guide/8_8/other-parsers.html#function-range-query-parser

それ以外にも、単純なレンジクエリを使って同じことを達成できるかもしれません:
fq=-(popularity:[* TO *]) (使用するクエリパーサーが純粋な否定句をサポートしていることを確認してください)。

よろしくお願いします。

Alessandro Benedetti
Apache Lucene/Solr コミッター
ディレクター, R&D ソフトウェアエンジニア, 検索コンサルタント

www.sease.io

返信投稿者:ks-solruserml-bot (2024/06/04 22:23 投稿)

ああ、なるほど!ドキュメントからこれが全く明確ではありませんでしたね。もう少し多くの例があれば役立ったでしょう。また、いくつかのブール関数が利用可能であること(例:exists(field))も、これらを 'fq' で使用できると考えさせました。そして、はい、私は否定のためのluceneの構文(あなたの例では fq=-(popularity:[* TO *]))を知っていますが、関数を使って解決策を見つけようと試みていました。私が取り組んでいるユースケースに対する解決策ですね。

返信してくれてありがとう!

Rahul

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

KandaSearch

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

投稿の削除

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