Firestore クエリ。
クエリ ステージは、次の順序で実行されます。1. から 2. ここで、3. select 4. orderBy + startAt + endAt 5. offset 6. limit
JSON 表現 |
---|
{ "select": { object ( |
フィールド | |
---|---|
select |
省略可能で、返されるフィールドのサブセットです。 これは、クエリから返されるドキュメントに対する |
from[] |
クエリ対象のコレクション。 |
where |
適用するフィルタ。 |
orderBy[] |
クエリ結果に適用する順序。 Firestore では、呼び出し元は、完全な順序付け、部分的な順序付け、または順序付けのまったく提供なしにできます。いずれの場合も、Firestore では次のルールを通じて安定した順序が保証されます。
フィールドには、最後に指定された順序と同じ並べ替え方向で追加されます。順序が指定されていない場合は「ASCENDING」になります。次に例を示します。
|
startAt |
結果セット内でクエリを開始する位置の接頭辞。 結果セットの順序は、元のクエリの
このクエリの結果は カーソルは、位置の完全な順序または接頭辞を参照できますが、指定された 上記の例に続き、次の開始カーソルをアタッチした場合の影響は異なります。
スキップするために最初の N 件の結果をスキャンする 必須の要素
|
endAt |
結果セット内でクエリを終了する位置の接頭辞。
必須の要素
|
offset |
最初の結果を返すまでにスキップするドキュメントの数。 これは、 必須の要素
|
limit |
返される結果の最大件数です。 他のすべての制約の後に適用されます。 必須の要素
|
findNearest |
省略可。潜在的な最近傍探索。 他のすべてのフィルタと順序の後に適用されます。 指定されたクエリベクトルに最も近いベクトル エンベディングを見つけます。 |
投影
返されるドキュメントのフィールドの射影。
JSON 表現 |
---|
{
"fields": [
{
object ( |
フィールド | |
---|---|
fields[] |
返されるフィールド。 空の場合、すべてのフィールドが返されます。ドキュメントの名前のみを返すには、 |
CollectionSelector
コレクションの選択(messages as m1
など)。
JSON 表現 |
---|
{ "collectionId": string, "allDescendants": boolean } |
フィールド | |
---|---|
collectionId |
コレクション ID。設定すると、この ID のコレクションのみが選択されます。 |
allDescendants |
false の場合、含まれる |
フィルタ
フィルタ。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド filter_type 。フィルタのタイプ。filter_type は次のいずれかになります。 |
|
compositeFilter |
複合フィルタ。 |
fieldFilter |
ドキュメント フィールドのフィルタ。 |
unaryFilter |
1 つの引数のみを取るフィルタ。 |
CompositeFilter
指定した演算子を使用して他の複数のフィルタを結合するフィルタ。
JSON 表現 |
---|
{ "op": enum ( |
フィールド | |
---|---|
op |
複数のフィルタを組み合わせる演算子。 |
filters[] |
結合するフィルタのリスト。 必須の要素
|
演算子
複合フィルタ演算子。
列挙型 | |
---|---|
OPERATOR_UNSPECIFIED |
指定なし。この値は使用しないでください。 |
AND |
結合されたすべてのフィルタを満たすドキュメントが必要です。 |
OR |
ドキュメントは、結合されたフィルタの少なくとも 1 つを満たす必要があります。 |
FieldFilter
特定のフィールドに対するフィルタ。
JSON 表現 |
---|
{ "field": { object ( |
フィールド | |
---|---|
field |
フィルタに使用するフィールド。 |
op |
フィルタに使用する演算子。 |
value |
比較対象の値。 |
演算子
フィールド フィルタ演算子。
列挙型 | |
---|---|
OPERATOR_UNSPECIFIED |
指定なし。この値は使用しないでください。 |
LESS_THAN |
指定された 必須の要素
|
LESS_THAN_OR_EQUAL |
指定された 必須の要素
|
GREATER_THAN |
指定された 必須の要素
|
GREATER_THAN_OR_EQUAL |
指定された 必須の要素
|
EQUAL |
指定された field は指定された value と等しくなります。 |
NOT_EQUAL |
指定された 必須の要素
|
ARRAY_CONTAINS |
指定された field は、指定された value を含む配列です。 |
IN |
指定された 必須の要素
|
ARRAY_CONTAINS_ANY |
指定された 必須の要素
|
NOT_IN |
必須の要素
|
UnaryFilter
単一のオペランドを持つフィルタ。
JSON 表現 |
---|
{ "op": enum ( |
フィールド | |
---|---|
op |
適用する単項演算子。 |
共用体フィールド operand_type 。フィルタの引数。operand_type は次のいずれかになります。 |
|
field |
演算子を適用するフィールド。 |
演算子
単項演算子。
列挙型 | |
---|---|
OPERATOR_UNSPECIFIED |
指定なし。この値は使用しないでください。 |
IS_NAN |
指定された field は NaN と等しくなります。 |
IS_NULL |
指定された field は NULL と等しくなります。 |
IS_NOT_NAN |
指定された 必須の要素
|
IS_NOT_NULL |
指定された 必須の要素
|
注文
フィールド上の注文。
JSON 表現 |
---|
{ "field": { object ( |
フィールド | |
---|---|
field |
並べ替えるフィールド。 |
direction |
並べ替える方向。デフォルトは |
方向
並べ替えの方向。
列挙型 | |
---|---|
DIRECTION_UNSPECIFIED |
(指定なし) |
ASCENDING |
昇順。 |
DESCENDING |
降順。 |
FindNearest
最近傍検索の設定。
JSON 表現 |
---|
{ "vectorField": { object ( |
フィールド | |
---|---|
vectorField |
必須。検索対象のインデックス付きベクトル フィールド。次元数が queryVector と一致するベクトルを含むドキュメントのみが返されます。 |
queryVector |
必須。検索対象のクエリベクトル。2,048 次元以下のベクトルにする必要があります。 |
distanceMeasure |
必須。使用する距離測定。必須。 |
limit |
必須。返される最近傍の数。1,000 以下の正の整数を指定する必要があります。 |
DistanceMeasure
ベクトルを比較するときに使用する距離の測定値。
列挙型 | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED |
設定しないでください。 |
EUCLIDEAN |
ベクトル間の EUCLIDEAN 距離を測定します。詳しくはユークリッドをご覧ください。 |
COSINE |
ベクトル間の角度に基づいてベクトルを比較します。これにより、ベクトルの大きさに基づかない類似性を測定できます。COSINE 距離ではなく単位正規化ベクトルで DOT_PRODUCT を使用することをおすすめします。COSINE 距離は数学的に同等でパフォーマンスが向上します。詳しくは、コサイン類似度をご覧ください。 |
DOT_PRODUCT |
コサインに似ていますが、ベクトルの大きさの影響を受けます。詳しくは、ドットプロダクトをご覧ください。 |