`timeAllowed` によって中断されたクエリから、部分的な検索結果やハイライトスニペットを取得することは可能ですか? | KandaSearch Community Support Forum

`timeAllowed` によって中断されたクエリから、部分的な検索結果やハイライトスニペットを取得することは可能ですか?

トピック作成者:ks-solruserml-bot (2025/02/12 15:17 投稿)
6
OpenOpen

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

こんにちは、

timeAllowed によってクエリが中断された場合、部分的に一致したドキュメントやそれに対応するハイライトスニペットは返されるのでしょうか?それとも、Solr のバージョンによって動作が異なるのでしょうか?

私のテストでは、レスポンスヘッダーに partialResults=true が含まれている場合でも、レスポンスボディには部分的な検索結果やスニペットが含まれていませんでした。

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

返信投稿者:ks-solruserml-bot (2025/02/12 15:18 投稿)

ちょっと提案なのですが、unifiedHighlightertermVectors や文字オフセットと一緒に試してみたことはありますか?
デフォルトの設定では、結果セットのテキストを再解析するため、大きなドキュメントやフィールドの場合、CPU負荷が高くなることがあります。しかし、インデックスに文字オフセットや termVectors を保存することで、この問題を回避する方法があります。多くのケースで「Postings」を使用することが良いトレードオフとなる可能性があります。
参考リンク: Solr Highlighting - Postings

これはあなたの質問に直接答えるものではありませんが、タイムアウトや部分的な結果に頼る代わりの解決策を提案したかっただけです。これらは別の理由でフラストレーションを引き起こす可能性もありますので。

返信投稿者:ks-solruserml-bot (2025/02/12 15:18 投稿)

こんにちは、Lukeさん

貴重な情報をありがとうございます。Unified HighlighterPostings 機能を試してみます。

とはいえ、「timeAllowed」パラメーターの動作についてもっと詳しく知りたいと思っています。特に、クエリがタイムアウトした場合に部分的な検索結果(マッチしたドキュメントやハイライトされたスニペットの両方)を取得することが可能かどうかについて知りたいです。

何か情報があれば、教えていただけると幸いです。

よろしくお願いいたします。
Zhao

返信投稿者:ks-solruserml-bot (2025/02/12 15:18 投稿)

コードを読む限りでは、部分的な検索結果を取得することはできないと思われます。タイムアウトがコア検索中に発生した場合、SolrIndexSearcher は特定の種類の ExitingReaderException をスローします。この例外は非常に上位(SearchHandler 内)でキャッチされます。これは、SearchHandler が複数の "SearchComponents"(その一つが HighlightComponent)をループ処理している間に発生します。この仕組みのため、検索処理は中断され、それ以降のコンポーネントは実行されません。

この動作を変更するのが適切かどうかは分かりません。というのも、ハイライト処理自体がコストのかかる操作であり、タイムアウトが誤解を招く可能性があるためです。もっと細かいタイムアウトを実装することも検討できますが、その投資対効果がどれほどあるかは不明です。

返信投稿者:ks-solruserml-bot (2025/02/12 15:18 投稿)

こんにちは、Lukeさん。

コードを解析し、詳細な説明を親切に提供していただきありがとうございます。

「timeAllowed」の設定値を超過してクエリが中断された場合、部分的な結果セットやそのハイライトされたスニペットを取得することは不可能であることが分かりました。

改めてご助力いただき、本当に感謝しています。

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

返信投稿者:ks-solruserml-bot (2025/02/12 15:19 投稿)

おそらく、アプリがハイライトなしで部分的な結果だけを取得した場合、見つかった結果のIDを指定して2回目のリクエストを行い、hl.qを介してハイライトのために最初のクエリを指定することができます。

--
よろしくお願いします。
Mikhail Khludnev

返信投稿者:ks-solruserml-bot (2025/02/12 15:19 投稿)

こんにちは、Mikhail、

素晴らしいアイデアをありがとうございます!このアプローチも検討してみます。

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

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

KandaSearch

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

投稿の削除

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