この記事では、ロケーション検索に関連する検索バックエンドの問題を解決する方法を概説します。ロケーション検索は、builtin.location
に推論フィルタを設定することで実現されるもので、検索クエリ内のユーザーまたはロケーションからの距離に基づいて結果を返します。
まず、一般的なトラブルシューティング手順として、ヘルプ記事「バックエンドでの検索の問題のデバッグ方法」に従ってください。問題が解決していれば、残りの手順をスキップしても構いません。
一般的なトラブルシューティングの手順
ロケーション検索がうまく機能していない場合は、以下のトラブルシューティング手順をお試しください。ある手順で問題が解決したら、残りの手順を実行する必要はありません。
- 問題が発生しているクエリの検索ログを開きます。以下のいずれかを行います。
- [検索] > [[エクスペリエンス名]] > [テスト検索] または [設定] のサブタブの順に進みます。テスト検索を実行し、ドロップダウンメニューから [クエリをデバッグ] を選択します。
- ステージングまたは本番環境リンクですでに検索を実行している場合、Search > [[エクスペリエンス名]] > [検索ログ(Search Logs)] に移動し、該当する検索ログをクリックします。検索バーまたはフィルターを使用して正しい検索ログを見つけるか、検索を再度実行して一番上に表示させます。
- ロケーション検出を確認する。検索ログのメタデータで、ユーザーのロケーションとして検出された情報を確認します。これが正しくない場合は、ブラウザでロケーション情報の検出を許可してから、再度検索を実行し、新しい検索ログをレビューします。それでも正しくない場合は、サポートチケットを送信してください。
-
推論フィルターを確認する。検索ログで、関連するバーティカルの
builtin.location
に推論フィルターが適用されているかどうかを確認します。- 適用されていない場合は、フィールドに対して推論フィルターがオンになっていることを確認するために、[検索] > [[エクスペリエンス名]] > [バーティカル] の順に進みます。[フィルター] タブをクリックします。検索可能なフィールドを追加し、[保存] をクリックし、右側のテスト検索で再度検索を実行します。
-
builtin.location
にすでに推論フィルターが設定されている場合は、例えば、ロケーション検索とaddress.region
のようなロケーションサブフィールドの間で、1つの推論フィルターのみが適用されていれば、推論フィルターの競合がないかどうかを確認します。推論フィルターの順序を設定することで、フィールド間の関係を解消できます。競合がロケーション検索よりも上位にランクされている場合、ロケーション検索を適用したい場合はそれを削除しなければなりません。
-
国制限を確認する。:設定に検索対象の国が含まれていることを確認します。設定されていない場合、デフォルトは米国のみです。
- Search > [[エクスペリエンス名]] > [一般設定(General Settings)]に移動します。
- 国制限フィールドに、検索可能にすべきすべての国が含まれていることを確認します。
-
境界ボックスを確認する。設定で境界ボックスが指定されているかどうか、また目的の検索可能領域がその境界ボックス内に含まれているかどうかを確認します。境界ボックスによっては、検索範囲が特定の地理的領域に限定されます。
- [検索] > [[エクスペリエンス名]] > [JSONとして編集] の順に進みます。
- bboxfinderのようなツールを使用して、既存の境界ボックスをマッピングします。必要な地理的地域をカバーしていることを確認します。
- 現在、境界ボックスが存在していなければ、ビジネスが地域に特化している場合は、検索結果の精度を向上させるために境界ボックスを追加することを検討してください。
-
結果が存在することを確認する。検索対象場所で、検索半径内にエンティティがあることを確認します。
-
[検索] > [[エクスペリエンス名]] > [JSON として編集] の順に進みます。最小位置半径(
minLocationRadius
)が設定されているか確認します(この数値はメートル単位です)。設定されていない場合、デフォルトは25マイルです。 - 汎用バーティカル検索を実行してすべての結果を返し(例えば、エンティティタイプを検索する)、返されたエンティティが近く、特に上記の半径内にあるかどうかを確認します。
- また、プラットフォーム上のエンティティを確認することも可能です。[Knowledge Graph] > [エンティティ] と移動し、州/地域または国名でフィルタリングして近くのロケーションを見つけます。
-
[検索] > [[エクスペリエンス名]] > [JSON として編集] の順に進みます。最小位置半径(
-
エクスペリエンストレーニングのオーバーライドを確認する。目的の推論フィルターは、拒否された場合や同じ検索クエリに対して別の推論フィルターが承認された場合には表示されません。
- [検索] > [[エクスペリエンス名]] > [推論フィルター] の順に進みます。
- 検索バーを使用して、トラブルシューティング中の検索用語をフィルタリングします。
- クリックして「完了した内容を表示」のトグルをオンにします。
- 関連するバーティカルに推論フィルター エントリがあるかどうかを確認します。
- 希望するロケーションに対してロケーション推論フィルターが拒否された場合、この推論フィルターはこの検索クエリには適用されません。適用したい場合は、完了したエクスペリエンストレーニングのオーバーライドを解除してください。
- 別の推論フィルターが承認された場合、希望するロケーションに対するロケーション推論フィルターは適用されません。
- 誤ったフィルターを解除します。
- 「完了した内容を表示」をオフに切り替えます。
- 希望する結果を承認するには、横にある緑色のチェックマークをクリックしてください。
- 複数のアクティブなオーバーライドがある場合は、不要なものを解除し、アクティブなオーバーライドが1つだけになるようにします。
アメリカ合衆国以外の場所が見つかりません。
プレース検索は、countryRestrictions
に記載されている国のみを検索します。このフィールドが入力されていない場合、デフォルトで米国のみが検索対象となります。
- Search > [[エクスペリエンス名]] > [一般設定(General Settings)]に移動します。
-
countryRestrictions
フィールドに検索に含めたい国が入力されていることを確認し、足りない国があれば追加します。
詳細については「Answers Configuration API」ドキュメントのcountryRestrictions
および「追加バーティカル設定」ユニットをご覧ください。
ロケーション検索で、同じ名前の2つの場所の間で間違ったオプションが選択されました
位置検索アルゴリズムが近接バイアスと場所の重要度を使用して、同じ名前の2つの場所から選択する方法については、検索アルゴリズムのリファレンスドキュメントをお読みください。
境界ボックスと国の制限を設定することで、検索範囲を特定の地域に限定し、結果の精度を向上させることができます。上記の「一般的なトラブルシューティング手順」を確認して、方法を確認してください。
特定の都市を検索しましたが、他の都市のロケーションが表示されたり、上位に表示されたりします
ロケーション検索は、都市などの検索トークンの中心緯度と経度を特定し、その緯度と経度に最も近いロケーションを返すことで機能します。他の都市のロケーションが検索範囲内にある場合、それらも表示されます。別の都市のロケーションが、その都市自体のロケーションよりも市の中心部に近い場合、結果で上位に表示されることがあります。ロケーション検索アルゴリズムの詳細については、Searchアルゴリズムのリファレンス記事をご覧ください。
検索済みトークン内のロケーションのみを表示するようにフィルタリングしたい場合は、address.city
のように、そのアドレスのサブフィールドに推論フィルターを設定します。推論フィルターは以下のように通常のフィールドとして扱われます。
- ナビゲーションバーの[Search]をクリックし、目的のSearchエクスペリエンスをクリックします。[バーティカル(Verticals)]画面が表示されます。
- 検索可能なフィールドを追加したい分野を選択します。
- [フィルター] タブで推論フィルターのボックスを見つけます。
- [+ フィールドを追加/更新] をクリックします。
- 検索バーに
address.
を入力します。可能なアドレスサブフィールドを表示し、使用したいものを選択します。[フィールドを更新] をクリックします。 - 検索可能フィールドのテーブルで、新しく追加したフィールドの推論フィルターをオンにし、必要であれば
builtin.location
の推論フィルターをオフにします。
コメント
0件のコメント
記事コメントは受け付けていません。