検索タームの追跡
Atlas Search tracking
オプションを使用すると、検索クエリを追跡できます。 クエリを追跡すると、Atlas は検索タームを追跡し、クエリ内の検索タームに関する分析情報を提供します。 分析情報を使用して、検索アプリケーションの品質を向上させ、関連する結果を返すようにクエリを調整できます。
注意
Atlas Search tracking
オプションによって返される分析情報を利用するには、 M10
以上のクラスターが必要です。 Atlas は、無料および共有階層クラスターでは、検索タームを追跡したり、クエリの分析情報を表示したりしません。
構文
{ $search: { "index": "<index name>", "<operator>": { <operator-specification> }, "tracking": { "searchTerms": "<term-to-search>" } } }
オプション
フィールド | タイプ | 説明 | 必要性 |
---|---|---|---|
searchTerms | string | 追跡するクエリに関連付けられたテキストまたはターム。 クエリごとに指定できるタームは 1 つだけです。 | 必須 |
動作
Atlas は、Atlas クラスター上の各 Atlas Search インデックスごとに、そのインデックスを使用して実行された追跡検索タームについて次のメトリクスを収集します。
追跡されたタームに対する Atlas Search クエリの数。
Atlas Search が追跡対象のタームのクエリで結果を返さなかった回数。
Atlas は、追跡された検索タームの 1 日あたりのクエリ数をカウントします。 Atlas では、追跡された $search
クエリから毎日クラスターごとに取得される検索タームの数に制限があります。 Atlas が 制限に達すると、新しい一意の検索タームは取得されなくなります。 ただし、Atlas が 制限に達して取得を停止した後の 1 日間、過去に追跡されたタームのクエリを実行すると、その日の制限に関係なく、Atlas はそれらのタームのカウンターを増加させ続けます。
Atlas は、追跡されるタームの数、追跡されるタームのカウント、および追跡される検索タームの数の制限を UTCの毎日の先頭にリセットします。
例
この例では、Atlas が追跡されているタームをカウントする方法を示しています。 次のように、 summer
というタームのクエリを実行するとします。
Atlas がその日に追跡される検索タームの数の制限に達する 日前。 次に、1 日目に、Atlas は
summer
のクエリ数をカウントし、summer
がその日の検索タームの上位に含まれている場合は、summer
で使用可能なメトリクスをカウントします。Atlas がその日の追跡検索ターム数の制限に達した前後の 2 日目。 次に、2 日目に、Atlas は追跡検索タームの数の制限に達する前後で
summer
のクエリ数をカウントし、summer
が上位検索タームの 1 つである場合、summer
で使用可能なメトリクスは指定します。Atlas がその日に追跡される検索タームの数の制限に達した後 3 日目。 その後 3 日目に、Atlas はターム
summer
のクエリをカウントせず、その日のsummer
ではメトリクスは使用できません。
Atlas Search では、クエリの処理にtracking
オプションで指定した用語は使用されません。 また、 tracking
オプションで指定した検索タームは、Atlas Search がクエリに対して返す結果には影響しません。
出力
Atlas Search インデックスの Atlas UI Query Analyticsページでtracking
オプションを使用して追跡されたクエリのメトリクスを表示できます。 詳しくは、「クエリ分析ページに移動する 」を参照してください。
Query Analyticsページには、現在日、過去 7 日間、過去 30 日間、過去 90 日間などの事前定義された日付範囲、または指定したカスタム範囲( UTC )に関する 1 日ごとの粒度が表示されます:
詳しくは、「クエリ分析の表示 」を参照してください。
例
sample_mflix.movies
コレクションに対する次のクエリは、 title
フィールドでsummer
というタームを検索します。 クエリはtracking
オプション(強調表示)を使用して、Atlas Search がクエリ用語summer
の分析情報を取得できるようにします。 クラスターにサンプル データがあり、コレクションのtitle
フィールドにdefault
という名前の Atlas Search インデックスがある場合は、クラスターのsample_mflix.movies
コレクションに対して次のクエリを実行できます。 サンプル データのロードと Atlas Search インデックスの作成の詳細については、「 Atlas Search を使い始める 」チュートリアルを参照してください。
db.movies.aggregate([ { "$search": { "text": { "query": "summer", "path": "title" }, "tracking": { "searchTerms": "summer" } } }, { "$limit": 5 }, { "$project": { "_id": 0, "title": 1 } } ])
[ { title: 'Summer' }, { title: 'Summer Stock' }, { title: 'Early Summer' }, { title: 'Summer Interlude' }, { title: 'Violent Summer' } ]
このクエリを実行すると、Atlas が追跡検索タームのデータを収集している場合、インデックスのQuery Analyticsページでそのクエリに関するメトリクスを表示できます。 詳しくは、「クエリ分析の表示 」を参照してください。