Một truy vấn trên Firestore.
Các giai đoạn truy vấn được thực hiện theo thứ tự sau: 1. từ 2. trong đó 3. chọn 4. orderBy + startAt + endAt 5. trừ 6. giới hạn
Biểu diễn dưới dạng JSON |
---|
{ "select": { object ( |
Trường | |
---|---|
select |
Tập hợp con không bắt buộc gồm các trường cần trả về. Tham số này hoạt động như một |
from[] |
Các tập hợp cần truy vấn. |
where |
Bộ lọc để áp dụng. |
orderBy[] |
Thứ tự áp dụng cho các kết quả truy vấn. Firestore cho phép người gọi đặt hàng đầy đủ, đặt hàng một phần hoặc không đặt hàng. Trong mọi trường hợp, Firestore đảm bảo thứ tự ổn định thông qua các quy tắc sau:
Các trường được nối với cùng hướng sắp xếp như thứ tự gần đây nhất được chỉ định hoặc "DỰA VÀO" nếu không có đơn đặt hàng nào được chỉ định. Ví dụ:
|
startAt |
Tiền tố tiềm năng của vị trí trong tập hợp kết quả để bắt đầu truy vấn. Thứ tự của nhóm kết quả dựa trên mệnh đề
Kết quả của truy vấn này được sắp xếp theo Con trỏ có thể tham chiếu thứ tự đầy đủ hoặc tiền tố của vị trí, mặc dù con trỏ không thể tham chiếu nhiều trường hơn những trường có trong Tiếp tục ví dụ trên, việc đính kèm các con trỏ bắt đầu sau đây sẽ có tác động khác nhau:
Không giống như Yêu cầu:
|
endAt |
Tiền tố tiềm năng của vị trí trong kết quả được đặt để kết thúc truy vấn tại. Hàm này tương tự như Yêu cầu:
|
offset |
Số tài liệu cần bỏ qua trước khi trả về kết quả đầu tiên. Điều này áp dụng sau các điều kiện ràng buộc do Yêu cầu:
|
limit |
Số lượng kết quả tối đa cần trả về. Áp dụng sau mọi quy tắc ràng buộc khác. Yêu cầu:
|
findNearest |
Không bắt buộc. Một người hàng xóm gần nhất có thể đang tìm kiếm. Áp dụng sau tất cả các bộ lọc và thứ tự khác. Tìm các vectơ nhúng gần nhất với vectơ truy vấn đã cho. |
Dự đoán
Phép chiếu các trường của tài liệu cần trả về.
Biểu diễn dưới dạng JSON |
---|
{
"fields": [
{
object ( |
Trường | |
---|---|
fields[] |
Các trường cần trả về. Nếu trống, tất cả các trường sẽ được trả về. Để chỉ trả về tên của tài liệu, hãy sử dụng |
Bộ chọn bộ sưu tập
Một lựa chọn trong một tập hợp, chẳng hạn như messages as m1
.
Biểu diễn dưới dạng JSON |
---|
{ "collectionId": string, "allDescendants": boolean } |
Trường | |
---|---|
collectionId |
Mã bộ sưu tập. Khi đặt giá trị này, chỉ chọn các bộ sưu tập có mã nhận dạng này. |
allDescendants |
Khi đặt là false, chỉ chọn các tập hợp là con trực tiếp của |
Bộ lọc
Bộ lọc.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp filter_type . Loại bộ lọc. filter_type chỉ có thể là một trong những trạng thái sau đây: |
|
compositeFilter |
Bộ lọc tổng hợp. |
fieldFilter |
Bộ lọc trên một trường tài liệu. |
unaryFilter |
Bộ lọc nhận đúng một đối số. |
Bộ lọc tổng hợp
Bộ lọc hợp nhất nhiều bộ lọc khác bằng toán tử cho trước.
Biểu diễn dưới dạng JSON |
---|
{ "op": enum ( |
Trường | |
---|---|
op |
Toán tử để kết hợp nhiều bộ lọc. |
filters[] |
Danh sách bộ lọc cần kết hợp. Yêu cầu:
|
Toán tử
Toán tử bộ lọc tổng hợp.
Enum | |
---|---|
OPERATOR_UNSPECIFIED |
Không xác định. Không được sử dụng giá trị này. |
AND |
Giấy tờ phải đáp ứng tất cả các bộ lọc kết hợp. |
OR |
Giấy tờ phải đáp ứng ít nhất một trong các bộ lọc kết hợp. |
Bộ lọc trường
Bộ lọc trên một trường cụ thể.
Biểu diễn dưới dạng JSON |
---|
{ "field": { object ( |
Trường | |
---|---|
field |
Trường để lọc theo. |
op |
Toán tử bạn muốn lọc theo. |
value |
Giá trị cần so sánh. |
Toán tử
Một toán tử lọc trường.
Enum | |
---|---|
OPERATOR_UNSPECIFIED |
Không xác định. Không được sử dụng giá trị này. |
LESS_THAN |
Yêu cầu:
|
LESS_THAN_OR_EQUAL |
Yêu cầu:
|
GREATER_THAN |
Yêu cầu:
|
GREATER_THAN_OR_EQUAL |
Yêu cầu:
|
EQUAL |
field đã cho bằng với value đã cho. |
NOT_EQUAL |
Yêu cầu:
|
ARRAY_CONTAINS |
field đã cho là một mảng chứa value đã cho. |
IN |
Yêu cầu:
|
ARRAY_CONTAINS_ANY |
Yêu cầu:
|
NOT_IN |
Giá trị của Yêu cầu:
|
Bộ lọc đơn sắc
Một bộ lọc có một toán hạng duy nhất.
Biểu diễn dưới dạng JSON |
---|
{ "op": enum ( |
Trường | |
---|---|
op |
Toán tử một ngôi để áp dụng. |
Trường kết hợp operand_type . Đối số cho bộ lọc. operand_type chỉ có thể là một trong những trạng thái sau đây: |
|
field |
Trường mà bạn muốn áp dụng toán tử. |
Toán tử
Một toán tử đơn phân.
Enum | |
---|---|
OPERATOR_UNSPECIFIED |
Không xác định. Không được sử dụng giá trị này. |
IS_NAN |
field đã cho bằng NaN . |
IS_NULL |
field đã cho bằng NULL . |
IS_NOT_NAN |
Yêu cầu:
|
IS_NOT_NULL |
Yêu cầu:
|
Gọi món
Thứ tự trên một trường.
Biểu diễn dưới dạng JSON |
---|
{ "field": { object ( |
Trường | |
---|---|
field |
Trường để sắp xếp thứ tự. |
direction |
Hướng dẫn sắp xếp thứ tự. Giá trị mặc định là |
Hướng
Hướng sắp xếp.
Enum | |
---|---|
DIRECTION_UNSPECIFIED |
Không xác định. |
ASCENDING |
Tăng dần. |
DESCENDING |
Giảm dần. |
Tìm gần nhất
Cấu hình tìm kiếm lân cận gần nhất.
Biểu diễn dưới dạng JSON |
---|
{ "vectorField": { object ( |
Trường | |
---|---|
vectorField |
Bắt buộc. Trường vectơ được lập chỉ mục để tìm kiếm. Chỉ có thể trả về các tài liệu chứa vectơ có kích thước phù hợp với queryVector. |
queryVector |
Bắt buộc. Vectơ truy vấn mà chúng ta đang tìm kiếm. Phải là vectơ có không quá 2048 chiều. |
distanceMeasure |
Bắt buộc. Số đo khoảng cách cần sử dụng, bắt buộc. |
limit |
Bắt buộc. Số người lân cận gần nhất để trả về. Phải là một số nguyên dương không quá 1000. |
Đo khoảng cách
Phép đo khoảng cách cần sử dụng khi so sánh các vectơ.
Enum | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED |
Không nên đặt. |
EUCLIDEAN |
Đo khoảng cách EUCLIDEAN giữa các vectơ. Xem Euclide để tìm hiểu thêm |
COSINE |
So sánh các vectơ dựa trên góc giữa chúng, cho phép bạn đo được sự tương đồng không dựa trên độ lớn của vectơ. Chúng tôi khuyên bạn nên sử dụng DOT_PRODUCT với vectơ chuẩn hoá đơn vị thay vì khoảng cách cosINE, tương đương về mặt toán học với hiệu suất tốt hơn. Xem phần Tính tương tự Cosine để tìm hiểu thêm. |
DOT_PRODUCT |
Tương tự như cosin nhưng bị ảnh hưởng bởi độ lớn của vectơ. Xem Dot Product để tìm hiểu thêm. |