> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# ログ検索のクエリ構文

> Auth0のログ検索を絞り込むために、Luceneクエリ構文のサブセットを使用した検索クエリ構文について説明します。

ログの検索では[Luceneクエリ構文](https://lucene.apache.org/core/2_9_4/queryparsersyntax.html)を使用してクエリを作成し、検索を絞り込むことができます。

クエリ文字列は、一連のタームと演算子に解析されます。

* タームは、`jane`や`smith`などの１つの単語の場合があります。
* タームは、二重引用符で囲まれたフレーズ（`"customer log"`）の場合があり、同じ語順でフレーズにあるすべての単語に一致させます。
* フィールド名のないタームは、これらの選択されたフィールドにのみ一致させます。
* 複数のタームは、括弧を使ってグループにまとめ、サブクエリにすることができます。
* すべての検索フィールドでは、大文字と小文字が区別されます。
* 演算子（`AND`、`OR`、`NOT`）はすべての検索可能なフィールドに使用できます。

<div id="searchable-fields">
  ## 検索可能なフィールド
</div>

以下のフィールドは検索可能で、大文字と小文字が区別されます。

<table class="table">
  <thead>
    <tr>
      <th><strong>フィールド</strong></th>
      <th><strong>説明</strong></th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`client_id`</td>
      <td>イベントに関連するクライアントID。</td>
    </tr>

    <tr>
      <td>`client_name`</td>
      <td>イベントに関連するクライアント名。</td>
    </tr>

    <tr>
      <td>`connection`</td>
      <td>イベントに関連する接続名。</td>
    </tr>

    <tr>
      <td>`connection_id`</td>
      <td>イベントに関連する接続ID。</td>
    </tr>

    <tr>
      <td>`description`</td>
      <td>イベントの説明。</td>
    </tr>

    <tr>
      <td>`date`</td>
      <td>YYYY-MM-DD形式のイベントが発生した日付。</td>
    </tr>

    <tr>
      <td>`hostname`</td>
      <td>認証フローに使用されるホスト名。</td>
    </tr>

    <tr>
      <td>`ip`</td>
      <td>ログエントリを引き起こした要求の送信元のIPアドレス。</td>
    </tr>

    <tr>
      <td>`log_id`</td>
      <td>イベントのログID。</td>
    </tr>

    <tr>
      <td>`organization_id`</td>
      <td>イベントに関連する組織ID。</td>
    </tr>

    <tr>
      <td>`user_id`</td>
      <td>イベントに関連するユーザーID。</td>
    </tr>

    <tr>
      <td>`user_name`</td>
      <td>イベントに関連するユーザー名。</td>
    </tr>

    <tr>
      <td>`user_agent`</td>
      <td>イベントに関連するユーザーエージェント。</td>
    </tr>

    <tr>
      <td>`strategy`</td>
      <td>イベントに関連する接続戦略。</td>
    </tr>

    <tr>
      <td>`strategy_type`</td>
      <td>イベントに関連する接続戦略のタイプ。</td>
    </tr>

    <tr>
      <td>`type`</td>
      <td>イベントのタイプ。</td>
    </tr>
  </tbody>
</table>

<div id="fields-searchable-against-bare-terms">
  ## ベアのタームに対して検索可能なフィールド
</div>

検索タームがフィールド名を使わずに入力された場合には、以下のフィールドに対してのみ検索されます。

* `client_name`
* `connection`
* `description`
* `ip`
* `log_id`
* `type`
* `user_name`

<div id="exact-matching">
  ## 完全一致
</div>

完全一致で検索するには、次のように、二重引用符を使用します：`description:"Username invalid"`。

例えば、`Username invalid`と一致するログを見つけるには、`q=description:"Username invalid"`を使用します。

<div id="wildcards">
  ## ワイルドカード
</div>

ワイルドカード検索は、アスタリスク文字（`*`）を使用して0以上の文字を置換する次のようなタームに実行できます：`user_name:john*`。プレフィックスの照合では、`user_name:j*`などのように使用できます。ワイルドカードのその他の使用（サフィックスの照合など）の場合、リテラルは3文字以上である必要があります。たとえば、`name:*usa`は使用できますが、`name:*sa`は使用できません。

クエスチョンマークの記号（`?`）には対応していません。

たとえば、ユーザー名が`john`で始まるユーザーを見つけるには、`q=user_name:john*`を使用します。

<div id="ranges">
  ## 範囲
</div>

ログ検索クエリで範囲を使用することができます。包括的な範囲には`[min TO max]`のように角括弧を使用し、排他的な範囲には`{min TO max}`のように中括弧を使用します。

中括弧と角括弧は同じ範囲の表現内で組み合わせることができます。範囲内にワイルドカードを使用することもできます。

たとえば、2018年12月18日から現在までのログをすべて見つけるには、`q=date:[2018-12-18 TO *]`を使用します。

保存期間の始めから2018年12月19日の前日までのログを見つけるには、`q=date:[* TO 2018-12-19}`を使用します。

<div id="example-queries">
  ## クエリの例
</div>

以下の例は、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>を使用して実行できるクエリの種類を紹介するものです。

<table class="table">
  <thead>
    <tr>
      <th>ユースケース</th>
      <th>クエリ</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>"Pass"を含む接続のすべてのログを検索</td>
      <td>`connection:*pass*`</td>
    </tr>

    <tr>
      <td>"fred"を含むユーザー名のユーザーをすべてのログで検索</td>
      <td>`user_name:*fred*`</td>
    </tr>

    <tr>
      <td>"123"に完全に一致するユーザーIDのすべてのログを検索</td>
      <td>`user_id:"123"`</td>
    </tr>

    <tr>
      <td>"s"で始まるタイプのすべてのログを検索</td>
      <td>`type:s*`</td>
    </tr>

    <tr>
      <td>"jane"で始まり"smith"で終わるユーザー名を検索</td>
      <td>`user_name:jane*smith`</td>
    </tr>

    <tr>
      <td>2018年12月のすべてのログを検索</td>
      <td>`date:[2018-12 TO 2019-01-01}`</td>
    </tr>

    <tr>
      <td>2018年12月10日以降のすべてのログを検索</td>
      <td>`date:[2018-12-10 TO *]`</td>
    </tr>

    <tr>
      <td>2019年1月1日午前1時から2019年1月1日12:23:45まで（ただしその時間は含まない）のすべてのログを検索</td>
      <td>`date:[2019-01-01T01:00:00 TO 2019-01-01T12:23:45}`</td>
    </tr>
  </tbody>
</table>

<div id="limitations">
  ## 制限事項
</div>

* `414 Request-URI Too Large`（要求のURIが長すぎます）のエラーが返された場合には、対応している長さよりもクエリ文字列が長いことを示しています。その場合には、検索を絞り込みます。
* ログフィールドはトークン化されていないため、`description:rule`は`Create a rule`（ルールの作成）や`Update a rule`（ルールの更新）の値を持つ説明には一致しません。この場合は、`description:*rule`を使用します。ワイルドカード検索と完全一致を参照してください。
* `.raw`フィールド拡張子には対応していません。フィールドは提供された値全体と照合され、トークン化はされません。

<div id="pagination">
  ## ページネーション
</div>

`include_totals`パラメーターを使って`GET /api/v2/logs`または`GET /api/v2/users/{user_id}/logs`エンドポイントを呼び出すと、結果の要約と要求されたログを含むJSONオブジェクトが返されます。以下のようなJSONオブジェクトになります。

```javascript lines theme={null}
{
  "length": 5,
  "limit": 5,
  "logs": [...],
  "start": 0,
  "total": 5
}
```

**total（合計）** フィールドは、ページで返されたログの数を示します（**length（長さ）** フィールドが返すものと同様です）。

<div id="learn-more">
  ## もっと詳しく
</div>

* [ログイベントを表示する](/docs/ja-JP/ja-jp/deploy-monitor/logs/view-log-events)
* [ログイベントタイプのコード](/docs/ja-JP/ja-jp/deploy-monitor/logs/log-event-type-codes)
* [ログイベントにフィルターをかける](/docs/ja-JP/ja-jp/deploy-monitor/logs/log-event-filters)
* [テナントログ検索v3への移行](/docs/ja-JP/ja-jp/troubleshoot/product-lifecycle/past-migrations/migrate-to-tenant-log-search-v3)
