استعلام 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[] |
الحقول المطلوب عرضها. إذا كانت فارغة، سيتم عرض جميع الحقول. لعرض اسم المستند فقط، استخدِم |
أداة اختيار المجموعة
مجموعة مختارات، مثل 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[] |
قائمة الفلاتر المطلوب دمجها يتطلب:
|
المؤثِّر
عامل تصفية مركب.
تعدادات | |
---|---|
OPERATOR_UNSPECIFIED |
غير محدَّد يجب عدم استخدام هذه القيمة. |
AND |
يجب إدخال المستندات لاستيفاء جميع الفلاتر المدمجة. |
OR |
يجب أن تستوفي المستندات فلترًا واحدًا على الأقل من الفلاتر المدمجة. |
فلتر الحقل
فلتر على حقل معيّن
تمثيل 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 |
تنازلي. |
البحث الأقرب
إعداد بحث الجيران الأقرب.
تمثيل JSON |
---|
{ "vectorField": { object ( |
الحقول | |
---|---|
vectorField |
مطلوب. حقل متّجه مفهرس للبحث عنه يمكن فقط عرض المستندات التي تحتوي على متجهات تتطابق أبعادها مع queryVector. |
queryVector |
مطلوب. متجه الاستعلام الذي نبحث عنه. يجب ألا يزيد طول الخط المتجه عن 2048. |
distanceMeasure |
مطلوب. قياس المسافة المطلوب استخدامه، مطلوب. |
limit |
مطلوب. عدد الجيران الأقرب المُراد إرجاعه. يجب أن يكون عددًا صحيحًا موجبًا لا يزيد عن 1000. |
قياس المسافة
قياس المسافة المستخدم عند المقارنة بين المتجهات.
تعدادات | |
---|---|
DISTANCE_MEASURE_UNSPECIFIED |
يجب عدم ضبطها. |
EUCLIDEAN |
تقيس مسافة EUCLIDEAN بين المتجهات. راجِع الإقليدية لمزيد من المعلومات |
COSINE |
تقارن المتجهات بناءً على الزاوية بينها، مما يسمح لك بقياس التشابه الذي لا يعتمد على حجم المتجهات. نوصي باستخدام DOT_PRODUCT مع وحدة متجهات تمت تسويتها بدلاً من مسافة COSINE، والتي تكون مكافئة رياضيًا بأداء أفضل. اطّلِع على مقالة تشابه جيب التمام لمعرفة مزيد من المعلومات. |
DOT_PRODUCT |
يشبه جيب التمام ولكنه يتأثر بحجم المتجهات. راجِع Dot Product لمزيد من المعلومات. |