ここでは、現在のAuth0ユーザー検索であるバージョン3について説明します。
- タームは、
janeやsmithなどの1つの単語の場合があります。 - タームは、二重引用符で囲まれたフレーズ(
"green apple")の場合があり、同じ順序のフレーズのすべての担当が一致します。 - フィールド名のないタームは、ユーザーメタデータフィールドのテキストと一致しません。
- 複数のタームは、括弧を使ってグループにまとめ、サブクエリにすることができます。
- 正規化されたユーザーフィールド(
email、name、given_name、family_name、およびnickname)の検索値は、大文字と小文字を区別しません。その他すべてのフィールド(すべてのapp_metadata/user_metadatafi-rudo/user_metadataフィールドを含む)は、大文字と小文字を区別します。 - 演算子(
AND、OR、NOT)は、正規化されたユーザーフィールドおよびルートメタデータフィールドのすべてで機能します。 - 演算子は、常に大文字である必要があります。
検索可能なフィールド
すべての正規化ユーザープロファイルフィールドおよび以下のフィールドを使用して、ユーザーを検索できます。| 検索フィールド | データタイプ | 説明 |
|---|---|---|
phone_number | テキスト | ユーザーの電話番号です。SMS接続のあるユーザーに対してのみ有効です。 |
phone_verified | ブール値 | true/falseの値は、ユーザーの電話番号が検証されたかを示します。SMS接続のあるユーザーに対してのみ有効です。 |
logins_count | 整数 | ユーザーがログインした回数です。ブロックされているユーザーがログインした場合、ブロックされたセッションがlogins_countに算入され、last_loginの値が更新されます。 |
created_at | 日時 | ユーザープロファイルが最初に作成された日時を示すタイムスタンプです。 |
updated_at | 日時 | ユーザープロファイルが最後に更新または変更された日を示すタイムスタンプです。 |
last_login | 日時 | ユーザーが最後にログインした日時を示すタイムスタンプです。このプロパティがルール内からuserオブジェクトを伴って実行される場合、値はルールを起動したログインと関連付けられます(ルールは実際のログインの後に実行されるからです)。 |
last_ip | テキスト(有効なIPアドレス) | ユーザーの最後のログインと関連付けられたIPアドレスです。 |
blocked | ブール値 | trueまたはfalseの値は、ユーザーがブロックされているかを示します。注意:trueは、Admin DashboardまたはManagement APIを使用してブロックされたユーザーのみ復旧させます。総当たり攻撃の異常検知でブロックされたユーザーは復旧しません。 |
email.domain | テキスト | ユーザーのメールアドレスのドメイン部分です。 |
organization_id | テキスト(有効な組織ID) | ユーザーがメンバーである組織です。 |
- ブール値
- 数値:integerまたはdouble
- 文字
- オブジェクト:別のオブジェクトにネストされているスカラー値を検索するには、フィールドへのパスを使用します。たとえば、
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 *]を使用します。
検索可能なプロファイル属性の例
Auth0管理APIのユーザーを検索する場合、user_metadataまたはapp_metadataで、ユーザーをフィルタリングできます。これを行うには、q パラメーターのLucene検索構文を使用できます。
Auth0管理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
このクエリは、13の値のfontSize属性と一致するユーザープロファイルすべてを返します。
メタデータのネストされた配列値をフィルタリング
ネストされた配列のフィールドを検索するために、以下のクエリを使用できます。q: user_metadata.addresses.city:"Seattle"
これは、user_metadataのaddress.city 属性からSeattleの値を返したユーザープロファイルのすべてを返します。