これら2つのクエリフィルターをORで組み合わせることはできますか? | KandaSearch Community Support Forum

これら2つのクエリフィルターをORで組み合わせることはできますか?

トピック作成者:ks-solruserml-bot (2024/12/28 18:22 投稿)
3
OpenOpen

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

こんにちは、皆さん。

私は現在、以下の2つのフィルターを論理的な OR で組み合わせようとしているのですが、うまくいきません:

  1. {!tag=REGION}(geo_bezirk_id:("2" OR "4"))
  2. {!field f=geo_rpt}Intersects(POLYGON((9.262772086904576 47.98679078170882, 9.043045524404576 46.616047902306306, 10.427322868154576 46.60095313349165, 10.504227165029576 48.01619508323075, 9.262772086904576 47.98679078170882)))

試した方法は以下の通りです:

  • フィルターを括弧で囲み、それぞれの間に OR を挿入する
({!field f=geo_rpt}Intersects(POLYGON((9.262772086904576 47.98679078170882, 9.043045524404576 46.616047902306306, 10.427322868154576 46.60095313349165, 10.504227165029576 48.01619508323075, 9.262772086904576 47.98679078170882)))) OR ({!tag=REGION}(geo_bezirk_id:("2" OR "4")))

Solr のバージョンは 8.6.3 です。

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

返信投稿者:ks-solruserml-bot (2024/12/28 18:23 投稿)

こんにちは、Carlo。

もしこの問題がまだ続いている場合、あなたの方法でフィルターを組み合わせようとした際に、どのようなエラーメッセージが表示されていますか? また、フィルターを括弧で囲まなかった場合には何が起きますか?

ありがとうございます。

返信投稿者:ks-solruserml-bot (2024/12/28 18:23 投稿)

このケースで役立つかは分かりませんが、私が過去に似た問題に直面した際、パーサーが複雑な引数(たとえば、あなたの場合のポリゴンの Intersects や、私が数年前に遭遇したグラフクエリ)を正しく処理できず、ローカルパラメータの終了位置を見つけるのに苦労することがありました。

問題の原因は、Solr のパーサーがローカルパラメータ内で別のパーサーに制御を渡し、そのパーサーがメインパーサーに正しい位置で制御を戻さない場合があるからだと思われます(一部のパーサーではスペース区切りのトークンが必要なため、これはすべてのケースで実現可能ではないのかもしれません)。

このような問題を解決するための別の方法として、複雑な内容を {} 内で v="" の中に入れる手法があります。この方法については、以下のリンクを参照してください:
Local Parameters in Queries - Solr

あなたの場合、次のような書き方を試してみると良いかもしれません:

{!field f='geo_rpt' v='Intersects(POLYGON((9.262772086904576 47.98679078170882,9.043045524404576 46.616047902306306,10.427322868154576 46.60095313349165,10.504227165029576 48.01619508323075,9.262772086904576 47.98679078170882)))'}
返信投稿者:ks-solruserml-bot (2024/12/28 18:23 投稿)

ええ、それは完璧に動作しました。
ありがとうございます!

ではまた!

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

KandaSearch

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

投稿の削除

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