Firestore 查询。
查询阶段按以下顺序执行:1. 从 2. 其中 3. 选择 4. orderBy + startAt + endAt 5. offset 6. limit
JSON 表示法 |
---|
{ "select": { object ( |
字段 | |
---|---|
select |
要返回的可选字段子集。 这充当从查询返回的文档的 |
from[] |
要查询的集合。 |
where |
要应用的过滤条件。 |
orderBy[] |
要应用于查询结果的顺序。 Firestore 允许调用方提供完整排序、部分排序或完全不排序。在所有情况下,Firestore 都会通过以下规则保证稳定排序:
字段将附加与最后一个指定顺序相同的排序方向,如果未指定排序顺序,则为“ASCENDING”。例如:
|
startAt |
结果集中开始查询的位置的可能前缀。 结果集的排序基于原始查询的
此查询的结果按 游标可以引用位置的完整排序或前缀,但其引用的字段不能超过提供的 继续上面的示例,附加以下开始游标会产生不同的影响:
与需要跳过前 N 个结果的 需要:
|
endAt |
结果集中查询结束位置的潜在前缀。 这与 需要:
|
offset |
在返回第一个结果之前要跳过的文档数量。 这在 需要:
|
limit |
要返回的结果数上限。 在所有其他限制条件之后应用。 需要:
|
findNearest |
可选。潜在的“最近邻”搜索。 在所有其他过滤条件和排序之后应用。 查找与指定查询向量最接近的向量嵌入。 |
Projection
要返回的文档字段的投影。
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 |
仅接受一个参数的过滤条件。 |
CompositeFilter
使用给定运算符合并多个其他过滤条件的过滤条件。
JSON 表示法 |
---|
{ "op": enum ( |
字段 | |
---|---|
op |
合并多个过滤条件的运算符。 |
filters[] |
要组合的过滤条件的列表。 需要:
|
运算符
复合过滤器运算符。
枚举 | |
---|---|
OPERATOR_UNSPECIFIED |
未指定。不得使用此值。 |
AND |
文档必须满足所有组合的过滤条件。 |
OR |
文档必须满足至少一个组合过滤条件的要求。 |
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 |
必需。我们要搜索的查询向量。必须是一个维度不超过 2048 个的矢量。 |
distanceMeasure |
必需。要使用的距离测量。 |
limit |
必需。要返回的最近相邻项的数量。必须是不大于 1000 的正整数。 |
DistanceMeasure
比较向量时要使用的距离度量。
枚举 | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED |
不应设置。 |
EUCLIDEAN |
测量向量之间的 EUCLIDEAN 距离。如需了解详情,请参阅欧几里得 |
COSINE |
根据向量之间的角度比较向量,以便您衡量不基于向量大小的相似度。我们建议将 DOT_PRODUCT 与单位归一化向量一起使用,而不是使用 COSINE 距离,因为后者在数学上是等效的,且性能更佳。如需了解详情,请参阅余弦相似度。 |
DOT_PRODUCT |
与余弦相似,但受向量大小的影响。如需了解详情,请参阅 Dot Product。 |