Firestore 查询。
查询阶段按以下顺序执行:1. from 2.,其中 3. 选择 4. orderBy + startAt + endAt 5. offset 6. 限制
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 |
只接受一个参数的过滤器。 |
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 |
需要:
|
一元过滤器
具有单个操作数的过滤器。
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 |
降序。 |
查找最近的地点
最近邻搜索配置。
JSON 表示法 |
---|
{ "vectorField": { object ( |
字段 | |
---|---|
vectorField |
必需。要搜索的矢量字段。只能返回维度与 queryVector 匹配的向量的文档。 |
queryVector |
必需。我们正在执行搜索的查询矢量。必须是不超过 2048 个维度的矢量。 |
distanceMeasure |
必需。要使用的距离计量单位,必填。 |
limit |
必需。要返回的最近相邻项的数量。必须是不大于 1000 的正整数。 |
距离测量
比较矢量时要使用的距离度量。
枚举 | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED |
不应设置。 |
EUCLIDEAN |
测量向量之间的 EUCLIDEAN 距离。如需了解详情,请参阅欧几里得语 |
COSINE |
根据向量之间的角度比较向量,这样您可以衡量并非基于向量量级的相似度。我们建议使用 DOT_PRODUCT 和单位归一化向量而不是 COSINE 距离,后者在数学上等效,性能更好。如需了解详情,请参阅余弦相似度。 |
DOT_PRODUCT |
与余弦类似,但受矢量大小影响。如需了解详情,请参阅 Dot Product。 |