このトピックでは、フレーズ検索機能の構文と制限について説明します。また、この機能の使用方法の例も示します。
概要
Simple Log Service は、ログをクエリするために単語分割を実装しています。たとえば、検索文 abc def
は、abc
または def
を含むログを返します。返されるログはランダムな順序でソートされ、完全なフレーズが完全に一致するとは限りません。そのため、Simple Log Service は、指定されたフレーズをログと正確に一致させるためのフレーズ検索機能を導入しました。
Simple Log Service がフレーズを含むログをクエリするリクエストを受信すると、Simple Log Service は次の手順を実行します。
フレーズ検索文に対応する非フレーズ検索文を実行して、ログをクエリします。たとえば、フレーズ検索文が
#"abc def"
の場合、Simple Log Service は最初に非フレーズ検索文である"abc def"
文を実行します。説明フレーズ検索機能では、手順 1 で最大 10,000 件のログを返すことができます。これにより、Simple Log Service が短期間に過剰な量のデータを処理することを防ぎます。
前の結果からフレーズ検索条件に一致するログをクエリし、最終結果を返します。
構文
フィールド固有の検索
key:#"abc def"
フルテキスト検索
#"abc def"
制限
フレーズ検索の結果は、前方または後方への連続ページめくりをサポートしています。ランダムなリダイレクトはサポートされていません。
フレーズ検索の実行後、ログ分布ヒストグラムには非フレーズ検索の結果が表示されます。
あいまい一致は、フレーズ検索ではサポートされていません。
フレーズ検索文では、ログと照合するフレーズを二重引用符(")で囲む必要があります。
NOT 演算子は、フレーズ検索文ではサポートされていません。たとえば、not #"abc def" は無効です。
フレーズ検索文は、分析文と一緒に使用することはできません。たとえば、
#"abc" | select ***
は無効です。フレーズ検索を実行する場合、クイック分析機能はサポートされていません。
ページめくり
ページめくりを実行すると、Simple Log Service はフレーズ検索を実行して、クエリ結果の連続性を確保します。
フレーズ検索の場合、Simple Log Service は一度に最大 10,000 件のログを処理できます。1 ページに表示されるログの数は、[1 ページあたりの項目数] で指定された数よりも少ない場合があります。ただし、引き続き 1 ページ先に進むことができます。この場合、処理される 10,000 件のログの中でフレーズ検索条件を満たすログの数が、[1 ページあたりの項目数] で指定された数よりも少なくなります。
たとえば、ログの総数が 20,000 件で、[1 ページあたりの項目数] で指定された数が 100 件だとします。フレーズ検索が完了した後、89 件のログのみが返され、1 ページ先に進むことができます。この場合、処理される最初の 10,000 件のログの中で、フレーズ検索条件を満たすログは 89 件のみです。ページめくりを実行できます。その後、Simple Log Service は残りの 10,000 件のログに対して 2 回目のフレーズ検索を自動的に実行し、フレーズ検索条件を満たすログを返します。
例
redo_index/1
を含むログをクエリします。非フレーズ検索文
"redo_index/1"
を使用する場合、Simple Log Service はフルテキストインデックスに基づいて、指定されたキーワードを含むログを検索します。フレーズ検索文
#"redo_index/1"
を使用する場合、Simple Log Service は完全なフレーズredo_index/1
を含むログを検索します。
02/Mar
を含むログをクエリします([デバッグ])。非フレーズ検索文 time_local: 02/Mar を使用する場合、Simple Log Service はフルテキストインデックスに基づいて指定されたキーワードを含むログを検索します。
フレーズ検索文
time_local: #"02/Mar"
を使用する場合、Simple Log Service は完全なフレーズ02/Mar
を含むログを検索します。