Firestore 查詢。
查詢階段會以下列順序執行:1. 從 2. 開始,其中 3. 選取 4。 orderBy + startAt + endAt 5。位移 6。
JSON 表示法 |
---|
{ "select": { object ( |
欄位 | |
---|---|
select |
針對要傳回的欄位 (選用) 子集合。 對查詢傳回的文件而言,這會是 |
from[] |
要查詢的集合。 |
where |
要套用的篩選器。 |
orderBy[] |
要套用至查詢結果的順序。 Firestore 可讓呼叫端提供完整訂購、部分訂購或完全不排序。無論在何種情況下,Firestore 都會透過下列規則保證具有穩定的排序:
欄位會附加與最後一個指定順序相同的排序方向,如未指定順序,則會附加「ASCENDING」。例如:
|
startAt |
查詢集內位置的可能前置字串,用於查詢起始位置。 結果集的排序是以原始查詢的
此查詢的結果是依 遊標可以參照完整排序或地點的前置字元,但只能參照所提供的 延續上方範例,附加下列開始遊標會造成不同的影響:
需求:
|
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 |
需求:
|
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 產品。 |