یک پرسش Firestore
مراحل پرس و جو به ترتیب زیر اجرا می شوند: 1. از 2. جایی که 3. انتخاب کنید 4. orderBy + startAt + endAt 5. offset 6. limit
نمایندگی JSON |
---|
{ "select": { object ( |
زمینه های | |
---|---|
select | زیر مجموعه اختیاری از فیلدها برای بازگشت. این به عنوان یک |
from[] | مجموعه هایی برای پرس و جو |
where | فیلتری که باید اعمال شود. |
orderBy[] | ترتیب اعمال به نتایج پرس و جو. Firestore به تماسگیرندگان اجازه میدهد تا سفارش کامل، سفارش جزئی یا اصلاً سفارشی را نداشته باشند. در همه موارد، Firestor یک سفارش پایدار را از طریق قوانین زیر تضمین می کند:
فیلدها با همان جهت مرتبسازی آخرین مرتبه مشخص شده، یا اگر ترتیبی مشخص نشده باشد، "صعودی" اضافه میشوند. مثلا:
|
startAt | پیشوند بالقوه یک موقعیت در نتیجه مجموعه برای شروع پرس و جو در. ترتیب مجموعه نتایج بر اساس بند
نتایج این پرس و جو بر اساس مکاننماها میتوانند به ترتیب کامل یا پیشوند مکان اشاره کنند، اگرچه نمیتوانند به فیلدهای بیشتری از آنچه در با ادامه مثال بالا، پیوست کردن نشانگرهای شروع زیر تأثیر متفاوتی خواهد داشت:
برخلاف نیاز دارد:
|
endAt | پیشوند بالقوه یک موقعیت در نتیجه مجموعه ای برای پایان دادن به پرس و جو در. این شبیه به نیاز دارد:
|
offset | تعداد اسنادی که باید قبل از بازگرداندن اولین نتیجه حذف شوند. این پس از محدودیت های مشخص شده توسط نیاز دارد:
|
limit | حداکثر تعداد نتایج برای بازگشت. بعد از تمام محدودیت های دیگر اعمال می شود. نیاز دارد:
|
findNearest | اختیاری. جستجوی بالقوه نزدیکترین همسایگان بعد از تمام فیلترهای دیگر و سفارش اعمال می شود. نزدیکترین جاسازی های برداری را به بردار پرس و جو داده شده پیدا می کند. |
فرافکنی
پیش بینی فیلدهای سند برای بازگشت.
نمایندگی JSON |
---|
{
"fields": [
{
object ( |
زمینه های | |
---|---|
fields[] | زمینه هایی برای بازگشت. اگر خالی باشد، همه فیلدها برگردانده می شوند. فقط برای برگرداندن نام سند، از |
انتخابگر مجموعه
مجموعه ای از مجموعه، مانند messages as m1
.
نمایندگی JSON |
---|
{ "collectionId": string, "allDescendants": boolean } |
زمینه های | |
---|---|
collectionId | شناسه مجموعه پس از تنظیم، فقط مجموعههایی را با این شناسه انتخاب میکند. |
allDescendants | وقتی نادرست است، فقط مجموعههایی را انتخاب میکند که فرزندان مستقیم |
فیلتر کنید
یک فیلتر
نمایندگی JSON |
---|
{ // Union field |
زمینه های | |
---|---|
فیلد اتحادیه filter_type . نوع فیلتر. filter_type تنها می تواند یکی از موارد زیر باشد: | |
compositeFilter | یک فیلتر کامپوزیت |
fieldFilter | فیلتر در فیلد سند |
unaryFilter | فیلتری که دقیقاً یک آرگومان می گیرد. |
کامپوزیت فیلتر
فیلتری که چندین فیلتر دیگر را با استفاده از عملگر داده شده ادغام می کند.
نمایندگی JSON |
---|
{ "op": enum ( |
زمینه های | |
---|---|
op | عملگر برای ترکیب چند فیلتر. |
filters[] | لیست فیلترهایی که باید ترکیب شوند. نیاز دارد:
|
اپراتور
اپراتور فیلتر ترکیبی
Enums | |
---|---|
OPERATOR_UNSPECIFIED | نامشخص این مقدار نباید استفاده شود. |
AND | برای برآورده کردن تمام فیلترهای ترکیبی، مدارک مورد نیاز است. |
OR | مدارک لازم است تا حداقل یکی از فیلترهای ترکیبی را برآورده کند. |
فیلد فیلتر
یک فیلتر در یک زمینه خاص.
نمایندگی JSON |
---|
{ "field": { object ( |
زمینه های | |
---|---|
field | فیلدی برای فیلتر کردن. |
op | اپراتور برای فیلتر کردن. |
value | ارزشی که باید با آن مقایسه کرد. |
اپراتور
یک اپراتور فیلتر میدانی
Enums | |
---|---|
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 | اپراتور unary برای درخواست. |
operand_type فیلد اتحادیه. استدلال به فیلتر. operand_type می تواند تنها یکی از موارد زیر باشد: | |
field | فیلدی که اپراتور برای آن اعمال می شود. |
اپراتور
یک اپراتور یکنواخت
Enums | |
---|---|
OPERATOR_UNSPECIFIED | نامشخص این مقدار نباید استفاده شود. |
IS_NAN | field داده شده برابر با NaN است. |
IS_NULL | field داده شده برابر با NULL است. |
IS_NOT_NAN | نیاز دارد:
|
IS_NOT_NULL | نیاز دارد:
|
سفارش
یک سفارش در یک میدان
نمایندگی JSON |
---|
{ "field": { object ( |
زمینه های | |
---|---|
field | زمینه برای سفارش. |
direction | جهت سفارش توسط. پیشفرض |
جهت
یک جهت.
Enums | |
---|---|
DIRECTION_UNSPECIFIED | نامشخص |
ASCENDING | صعودی. |
DESCENDING | نزولی. |
یافتن نزدیکترین
پیکربندی جستجوی نزدیکترین همسایگان.
نمایندگی JSON |
---|
{ "vectorField": { object ( |
زمینه های | |
---|---|
vectorField | ضروری. یک فیلد برداری نمایه شده برای جستجو. فقط اسنادی که حاوی بردارهایی هستند که ابعاد آنها با queryVector مطابقت دارد، قابل بازگشت هستند. |
queryVector | ضروری. بردار پرس و جو که ما در آن جستجو می کنیم. باید بردار با ابعاد بیش از 2048 باشد. |
distanceMeasure | ضروری. اندازهگیری فاصله برای استفاده، لازم است. |
limit | ضروری. تعداد نزدیکترین همسایگان برای بازگشت. باید یک عدد صحیح مثبت بیش از 1000 نباشد. |
اندازه گیری فاصله
اندازه گیری فاصله برای مقایسه بردارها.
Enums | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED | نباید تنظیم شود. |
EUCLIDEAN | فاصله EUCLIDEAN بین بردارها را اندازه گیری می کند. برای کسب اطلاعات بیشتر به اقلیدسی مراجعه کنید |
COSINE | بردارها را بر اساس زاویه بین آنها مقایسه می کند، که به شما امکان می دهد شباهتی را اندازه گیری کنید که بر اساس بزرگی بردارها نیست. توصیه می کنیم از DOT_PRODUCT با بردارهای نرمال شده واحد به جای فاصله COSINE استفاده کنید که از نظر ریاضی با عملکرد بهتر معادل است. برای کسب اطلاعات بیشتر به شباهت کسینوس مراجعه کنید. |
DOT_PRODUCT | شبیه کسینوس است اما تحت تأثیر بزرگی بردارها است. برای کسب اطلاعات بیشتر به محصول نقطه مراجعه کنید. |