この記事では、クエリルールに関連するSearchバックエンドの問題をトラブルシューティングする方法を概説します。
まず、一般的なトラブルシューティング手順として、ヘルプ記事「バックエンドでの検索の問題のデバッグ方法」に従ってください。問題が解決していれば、残りの手順をスキップしても構いません。
一般的なトラブルシューティングの手順
高レベルでは、クエリルールの設定を(検索ログに表示される)アルゴリズムが返した結果と比較する必要があります。
- クエリルールの設定を開きます。
- [検索] > [[エクスペリエンス名]] > [クエリ規則]の順に進みます。
- 設定された基準とアクションを確認します。
- 問題が発生しているクエリの検索ログを開きます。以下のいずれかを行います。
- Search > [[エクスペリエンス名]] > [テスト検索(Test Search)]または [設定(Configuration)]サブタブに移動します。テスト検索を実行し、ドロップダウンメニューから[クエリをデバッグ(Debug Query)]を選択します。
- ステージングまたは本番環境リンクですでに検索を実行している場合、Search > [[エクスペリエンス名]] > [検索ログ(Search Logs)] に移動し、該当する検索ログをクリックします。検索バーまたはフィルターを使用して正しい検索ログを見つけるか、検索を再度実行して一番上に表示させます。
- クエリルールが適用されたかどうかを確認するには、ルールが検索ログの検索要素ボックスに表示されているかどうかを確かめます。
- クエリルールが検索ログに表示されない場合は、設定内のクエリルールの基準を再確認し、実行した検索がその基準を満たしているかどうかを確認します。
- 基準が正規表現を使用している場合、指定された正規表現パターンをデバッグツールで確認します。
- 条件にコンテキストまたはリファラーページのURLが使用されている場合、それが検索に取り込まれたかどうかを確認します。その場合、これらは、検索要素ボックスのクエリパラメーター属性の下にリストされます。
- 基準にバーティカルキーまたは検索タイプが使用されている場合は、検索メタデータ内の検索タイプが正しいことを確認します。また、バーティカルキーが変更されていないことを再度確認します。
- クエリルールが表示される(条件が満たされている)場合でも、期待されるバーティカルまたはエンティティが結果セットに含まれていない(または結果が得られない)場合は、期待される結果がクエリルールのアクションと一致していることを再確認してください。
- フィールドAPI名、エンティティタイプAPI名、バーティカルキー、またはエンティティIDを参照する場合、それらが正確に一致し、変更されていないことを確認します。
- 実行したい内容に合わせてアクションが適切に設定されていることを確認します。例えば、エンティティをブーストする場合、エンティティは返される順序でリストされているでしょうか。
クエリルールがシノニムで機能していません
クエリルールは、既存の設定を条件付きでオーバーライドすることを目的とした、ハードコードのロジックの一部であるため、Searchにおいてはすべてに優先されます。したがって、これらはシノニムでは機能しません。
例えば、ルールの条件がsearchTermExactlyMatches
”shoes”で、“sneakers” —> “shoes”という一方向のシノニムを作成した場合、“sneakers”が検索されてもルールは発動しません。これを回避するには、 searchTermContains
”shoes” or “sneakers”など、より広いルール基準を使用するか、各シノニムのルールを作成する必要があります。
コメント
0件のコメント
記事コメントは受け付けていません。