この内容では、現在の Auth0 ユーザー検索 (バージョン 3) について説明します。
- 用語には、
janeやsmithのような単一の単語を指定できます。 - 用語には、二重引用符で囲まれたフレーズ (
"green apple") を指定することもでき、この場合、フレーズ内のすべての単語が同じ順序で一致します。 - フィールド名のない用語は、ユーザーメタデータ フィールド内のテキストには一致しません。
- 複数の用語は、丸括弧でグループ化してサブクエリを作成できます。
- 正規化されたユーザーフィールド (
email、name、given_name、family_name、nickname) の検索値では、大文字と小文字は区別されません。それ以外のすべてのフィールド (app_metadata/user_metadataのすべてのフィールドを含む) では、大文字と小文字が区別されます。 - 演算子 (
AND、OR、NOT) は、すべての正規化されたユーザーフィールドとルートメタデータフィールドで使用できます。 - 演算子は必ず大文字で指定してください。
検索可能なフィールド
| 検索フィールド | データ型 | 説明 |
|---|---|---|
phone_number | text | ユーザーの電話番号。SMS 接続のユーザーに対してのみ有効です。 |
phone_verified | boolean | true/false の値は、ユーザーの電話番号が確認済みかどうかを示します。SMS 接続のユーザーに対してのみ有効です。 |
logins_count | integer | ユーザーのログイン回数。ユーザーがブロックされている状態でログインした場合、そのブロックされたセッションも logins_count にカウントされ、last_login の値も更新されます。 |
created_at | date time | ユーザープロフィールが最初に作成された日時のタイムスタンプ。 |
updated_at | date time | ユーザーのプロフィールが最後に更新または変更された日時のタイムスタンプ。 |
last_login | date time | ユーザーが最後にログインした日時のタイムスタンプ。このプロパティを user オブジェクトとともに Rules 内から参照する場合、その値はその Rule をトリガーしたログインに対応します (Rules は実際のログイン後に実行されるため) 。 |
last_ip | text (valid IP address) | ユーザーの最後のログインに関連付けられた IP アドレス。 |
blocked | boolean | true または false の値は、ユーザーがブロックされているかどうかを示します。注: true で返されるのは Admin Dashboard と Management API によってブロックされたユーザーのみであり、ブルートフォース異常検知によってブロックされたユーザーは返されません。 |
email.domain | text | ユーザーのメールアドレスのドメイン部分。 |
organization_id | text (valid organization ID) | ユーザーがメンバーである組織。 |
- boolean
- 数値: integer または double
- text
- オブジェクト: 別のオブジェクト内にネストされたスカラー値を検索するには、そのフィールドへのパスを使用します。例:
app_metadata.subscription.plan:"gold" - 配列: 配列内のオブジェクトにネストされたフィールドを検索するには、そのフィールドへのパスを使用し、配列レベルは無視します。例:
user_metadata.addresses.city:"Paris"
null 値を含むメタデータフィールドはインデックス化されないため、検索できません。
user_metadata フィールドでは、範囲検索とワイルドカード検索は使用できません。
完全一致
name:"jane smith"。
たとえば、名前が jane smith のユーザーを検索するには、q=name:"jane smith" を使用します。
ワイルドカード
*) を使って 0 文字以上を置き換え、用語を検索できます。ワイルドカード検索は user_metadata フィールドでは使用できません。
例
name:john*は、名前がjohnで始まるすべてのユーザーを返します。name:j*は、名前がjで始まるすべてのユーザーを返します。q=name:john*は、名前がjohnで始まるすべてのユーザーを返します。- 接尾辞一致の場合、リテラルは 3 文字以上である必要があります。たとえば、
name:*usa`` は使用できますが、name:*sa` は使用できません。
範囲
- 包含範囲には角括弧を使用します:
[min TO max]。 - 排他範囲には波括弧を使用します:
{min TO max}。 - 波括弧と角括弧は、同じ範囲式内で組み合わせて使用できます:
logins_count:[100 TO 200}。 - 範囲はワイルドカードと組み合わせて使用できます。たとえば、ログイン回数が 100 回を超えるすべてのユーザーを検索するには、
q=logins_count:{100 TO *]を使用します。
検索可能なプロフィール属性の例
user_metadata または app_metadata を使ってユーザーを絞り込めます。そのためには、q パラメーターで Lucene Search Syntax を使用します。
Auth0 Management API のユーザーの一覧取得または検索エンドポイントは、結果が 1000 件 (100 件ずつの 10 ページ) までに制限されているため、絞り込みを行うことで、関連性の高い結果を確実に返しやすくなります。
以下は、ユーザープロフィールの user_metadata のサンプルです。
メタデータ属性でフィルタリングする
user_metadata の値を返すには、属性フィルターを含めるように q クエリを更新します。
user_metadata の値については、プロファイルを直接クエリできます。
q: _exists_:user_metadata.fav_color
このクエリは、user_metadata に fav_color 属性を持つすべてのユーザープロファイルを返します。
メタデータ のネストされたオブジェクトの属性と値でフィルタリングする
user_metadata 内のネストされたオブジェクトも検索できます。
q: _exists_:user_metadata.preferences.fontSize
このクエリは、user_metadata に preferences.fontSize が設定されているすべてのユーザープロファイルを検索します。
別のオブジェクト内にあるネストされたオブジェクトの値を検索するには、次のクエリを確認してください。
q: user_metadata.preferences.fontSize:13
このクエリは、fontSize 属性の値が 13 のすべてのユーザープロファイルを返します。
メタデータ内のネストされた配列の値をフィルタリングする
q: user_metadata.addresses.city:"Seattle"
これにより、user_metadata の address.city 属性の値が Seattle であるすべてのユーザープロファイルが返されます。