StructuredQuery

একটি ফায়ারস্টোর ক্যোয়ারী।

ক্যোয়ারী পর্যায়গুলি নিম্নলিখিত ক্রমে সম্পাদিত হয়: 1. থেকে 2. যেখানে 3. নির্বাচন করুন 4. orderBy + startAt + endAt 5. অফসেট 6. সীমা

JSON প্রতিনিধিত্ব
{
  "select": {
    object (Projection)
  },
  "from": [
    {
      object (CollectionSelector)
    }
  ],
  "where": {
    object (Filter)
  },
  "orderBy": [
    {
      object (Order)
    }
  ],
  "startAt": {
    object (Cursor)
  },
  "endAt": {
    object (Cursor)
  },
  "offset": integer,
  "limit": integer,
  "findNearest": {
    object (FindNearest)
  }
}
ক্ষেত্র
select

object ( Projection )

ক্ষেত্রগুলির ঐচ্ছিক উপ-সেট ফেরত দিতে।

এটি একটি প্রশ্ন থেকে ফিরে আসা নথিগুলির উপর একটি DocumentMask হিসাবে কাজ করে। সেট করা না হলে, অনুমান করে যে কলকারী সমস্ত ক্ষেত্র ফেরত চায়।

from[]

object ( CollectionSelector )

অনুসন্ধান করার জন্য সংগ্রহ.

where

object ( Filter )

ফিল্টার প্রয়োগ করতে হবে।

orderBy[]

object ( Order )

প্রশ্নের ফলাফলে আবেদন করার আদেশ।

Firestore কলারদের একটি সম্পূর্ণ অর্ডার, একটি আংশিক অর্ডার, বা একেবারেই অর্ডার না দেওয়ার অনুমতি দেয়। সমস্ত ক্ষেত্রে, Firestore নিম্নলিখিত নিয়মগুলির মাধ্যমে একটি স্থিতিশীল অর্ডারের গ্যারান্টি দেয়:

  • একটি অসমতা ফিল্টারের সাথে ব্যবহৃত সমস্ত ক্ষেত্র উল্লেখ করার জন্য orderBy প্রয়োজন।
  • যে সমস্ত ক্ষেত্রগুলি orderBy থাকা প্রয়োজন কিন্তু ইতিমধ্যে উপস্থিত নেই সেগুলি ক্ষেত্রের নামের অভিধানিক ক্রমানুসারে যুক্ত করা হয়েছে৷
  • যদি __name__ এ একটি অর্ডার নির্দিষ্ট করা না থাকে, তাহলে এটি ডিফল্টরূপে যুক্ত করা হয়।

ক্ষেত্রগুলি একই সাজানোর দিকনির্দেশের সাথে যুক্ত করা হয় যেমন শেষ অর্ডার নির্দিষ্ট করা হয়েছে, বা 'অ্যাসেন্ডিং' যদি কোনও অর্ডার নির্দিষ্ট করা না থাকে। উদাহরণ স্বরূপ:

  • ORDER BY a হয়ে যায় ORDER BY a ASC, __name__ ASC
  • ORDER BY a DESC হয়ে যায় ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 হয়ে যায় WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 হয়ে যায় WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
startAt

object ( Cursor )

ফলাফলে একটি অবস্থানের একটি সম্ভাব্য উপসর্গ যেটিতে কোয়েরি শুরু করতে সেট করা হয়েছে৷

ফলাফল সেটের ক্রম মূল প্রশ্নের ORDER BY ধারার উপর ভিত্তি করে।

SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;

এই প্রশ্নের ফলাফল (b ASC, __name__ ASC) দ্বারা আদেশ করা হয়েছে।

কার্সারগুলি হয় সম্পূর্ণ ক্রম বা অবস্থানের একটি উপসর্গ উল্লেখ করতে পারে, যদিও এটি প্রদত্ত ORDER BY তে যা আছে তার চেয়ে বেশি ক্ষেত্র উল্লেখ করতে পারে না।

উপরের উদাহরণটি চালিয়ে গেলে, নিম্নলিখিত স্টার্ট কার্সারগুলি সংযুক্ত করলে বিভিন্ন প্রভাব পড়বে:

  • START BEFORE (2, /k/123) : a = 1 AND b > 2 AND __name__ > /k/123 এর আগে কোয়েরিটি শুরু করুন।
  • START AFTER (10) : ক্যোয়ারীটি শুরু করুন a = 1 AND b > 10 পরে।

OFFSET বিপরীতে যা এড়িয়ে যাওয়ার জন্য প্রথম N ফলাফলগুলি স্ক্যান করার প্রয়োজন হয়, একটি স্টার্ট কার্সার ক্যোয়ারীটিকে একটি যৌক্তিক অবস্থানে শুরু করতে দেয়৷ এই অবস্থানটি একটি প্রকৃত ফলাফলের সাথে মিলিত হওয়ার প্রয়োজন নেই, এটি পরবর্তী নথিটি খুঁজে পেতে এই অবস্থান থেকে এগিয়ে স্ক্যান করবে।

প্রয়োজন:

  • মানের সংখ্যা ORDER BY ধারায় নির্দিষ্ট ক্ষেত্রগুলির সংখ্যার চেয়ে বেশি হতে পারে না।
endAt

object ( Cursor )

ফলাফলে একটি অবস্থানের সম্ভাব্য উপসর্গ যেটি কোয়েরি শেষ করতে সেট করে।

এটি START_AT এর মতো কিন্তু এটি শুরুর অবস্থানের পরিবর্তে শেষ অবস্থান নিয়ন্ত্রণ করে৷

প্রয়োজন:

  • মানের সংখ্যা ORDER BY ধারায় নির্দিষ্ট ক্ষেত্রগুলির সংখ্যার চেয়ে বেশি হতে পারে না।
offset

integer

প্রথম ফলাফল ফেরত দেওয়ার আগে এড়িয়ে যাওয়ার জন্য নথির সংখ্যা৷

এটি WHERE , START AT , এবং END AT দ্বারা নির্দিষ্ট সীমাবদ্ধতার পরে প্রযোজ্য কিন্তু LIMIT ধারার আগে৷

প্রয়োজন:

  • নির্দিষ্ট করা থাকলে মানটি অবশ্যই শূন্যের বেশি বা সমান হতে হবে।
limit

integer

সর্বোচ্চ সংখ্যক ফলাফল ফেরত দিতে হবে।

অন্যান্য সমস্ত সীমাবদ্ধতার পরে প্রযোজ্য।

প্রয়োজন:

  • নির্দিষ্ট করা থাকলে মানটি অবশ্যই শূন্যের বেশি বা সমান হতে হবে।
findNearest

object ( FindNearest )

ঐচ্ছিক। একটি সম্ভাব্য নিকটতম প্রতিবেশী অনুসন্ধান.

অন্যান্য সমস্ত ফিল্টার এবং অর্ডার করার পরে প্রযোজ্য।

প্রদত্ত ক্যোয়ারী ভেক্টরের নিকটতম ভেক্টর এম্বেডিং খুঁজে বের করে।

অভিক্ষেপ

প্রত্যাবর্তনের জন্য নথির ক্ষেত্রগুলির অভিক্ষেপ৷

JSON প্রতিনিধিত্ব
{
  "fields": [
    {
      object (FieldReference)
    }
  ]
}
ক্ষেত্র
fields[]

object ( FieldReference )

ক্ষেত্র ফিরে.

খালি থাকলে, সমস্ত ক্ষেত্র ফেরত দেওয়া হয়। শুধুমাত্র নথির নাম ফেরত দিতে, ['__name__'] ব্যবহার করুন।

সংগ্রহ নির্বাচক

একটি সংগ্রহের একটি নির্বাচন, যেমন messages as m1

JSON প্রতিনিধিত্ব
{
  "collectionId": string,
  "allDescendants": boolean
}
ক্ষেত্র
collectionId

string

সংগ্রহের আইডি। সেট করা হলে, এই আইডি সহ শুধুমাত্র সংগ্রহ নির্বাচন করে।

allDescendants

boolean

মিথ্যা হলে, শুধুমাত্র সেই সংগ্রহগুলি নির্বাচন করে যা RunQueryRequest এ উল্লেখ করা parent তাৎক্ষণিক সন্তান। সত্য হলে, সমস্ত বংশধর সংগ্রহ নির্বাচন করে।

ছাঁকনি

একটি ফিল্টার।

JSON প্রতিনিধিত্ব
{

  // Union field filter_type can be only one of the following:
  "compositeFilter": {
    object (CompositeFilter)
  },
  "fieldFilter": {
    object (FieldFilter)
  },
  "unaryFilter": {
    object (UnaryFilter)
  }
  // End of list of possible types for union field filter_type.
}
ক্ষেত্র
ইউনিয়ন ফিল্ড filter_type । ফিল্টারের প্রকার। filter_type নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
compositeFilter

object ( CompositeFilter )

একটি যৌগিক ফিল্টার।

fieldFilter

object ( FieldFilter )

একটি নথি ক্ষেত্রের একটি ফিল্টার.

unaryFilter

object ( UnaryFilter )

একটি ফিল্টার যা ঠিক একটি আর্গুমেন্ট নেয়।

কম্পোজিট ফিল্টার

একটি ফিল্টার যা প্রদত্ত অপারেটর ব্যবহার করে একাধিক অন্যান্য ফিল্টারকে একত্রিত করে।

JSON প্রতিনিধিত্ব
{
  "op": enum (Operator),
  "filters": [
    {
      object (Filter)
    }
  ]
}
ক্ষেত্র
op

enum ( Operator )

একাধিক ফিল্টার একত্রিত করার জন্য অপারেটর।

filters[]

object ( Filter )

একত্রিত করার জন্য ফিল্টারের তালিকা।

প্রয়োজন:

  • অন্তত একটি ফিল্টার উপস্থিত আছে.

অপারেটর

একটি যৌগিক ফিল্টার অপারেটর।

Enums
OPERATOR_UNSPECIFIED অনির্দিষ্ট। এই মান ব্যবহার করা উচিত নয়.
AND সমস্ত মিলিত ফিল্টার সন্তুষ্ট করার জন্য নথির প্রয়োজন।
OR কমপক্ষে একটি সম্মিলিত ফিল্টার পূরণ করার জন্য নথির প্রয়োজন।

ফিল্ড ফিল্টার

একটি নির্দিষ্ট ক্ষেত্রে একটি ফিল্টার.

JSON প্রতিনিধিত্ব
{
  "field": {
    object (FieldReference)
  },
  "op": enum (Operator),
  "value": {
    object (Value)
  }
}
ক্ষেত্র
field

object ( FieldReference )

ফিল্টার করার জন্য ক্ষেত্র।

op

enum ( Operator )

অপারেটর দ্বারা ফিল্টার.

value

object ( Value )

যে মানটির সাথে তুলনা করতে হবে৷

অপারেটর

একটি ফিল্ড ফিল্টার অপারেটর।

Enums
OPERATOR_UNSPECIFIED অনির্দিষ্ট। এই মান ব্যবহার করা উচিত নয়.
LESS_THAN

প্রদত্ত field প্রদত্ত value থেকে কম।

প্রয়োজন:

  • যে field orderBy প্রথমে আসে।
LESS_THAN_OR_EQUAL

প্রদত্ত field প্রদত্ত value থেকে কম বা সমান।

প্রয়োজন:

  • যে field orderBy প্রথমে আসে।
GREATER_THAN

প্রদত্ত field প্রদত্ত value থেকে বড়।

প্রয়োজন:

  • যে field orderBy প্রথমে আসে।
GREATER_THAN_OR_EQUAL

প্রদত্ত field প্রদত্ত value থেকে বড় বা সমান।

প্রয়োজন:

  • যে field orderBy প্রথমে আসে।
EQUAL প্রদত্ত field প্রদত্ত value সমান।
NOT_EQUAL

প্রদত্ত field প্রদত্ত value সমান নয়।

প্রয়োজন:

  • অন্য কোন NOT_EQUAL , NOT_IN , IS_NOT_NULL , বা IS_NOT_NAN
  • যে field orderBy প্রথমে আসে।
ARRAY_CONTAINS প্রদত্ত field একটি অ্যারে যা প্রদত্ত value ধারণ করে।
IN

প্রদত্ত field প্রদত্ত অ্যারের অন্তত একটি মানের সমান।

প্রয়োজন:

  • এই value একটি অ-খালি ArrayValue , বিচ্ছিন্নতা সীমা সাপেক্ষে।
  • একই ক্যোয়ারীতে কোন NOT_IN ফিল্টার নেই।
ARRAY_CONTAINS_ANY

প্রদত্ত field হল একটি অ্যারে যাতে প্রদত্ত অ্যারের যেকোনো মান থাকে।

প্রয়োজন:

  • এই value একটি অ-খালি ArrayValue , বিচ্ছিন্নতা সীমা সাপেক্ষে।
  • একই বিচ্ছিন্নতার মধ্যে অন্য কোনো ARRAY_CONTAINS_ANY ফিল্টার নেই৷
  • একই ক্যোয়ারীতে কোন NOT_IN ফিল্টার নেই।
NOT_IN

field মান প্রদত্ত অ্যারেতে নেই।

প্রয়োজন:

  • এই value সর্বাধিক 10টি মান সহ একটি অ-খালি ArrayValue
  • অন্য কোন OR , IN , ARRAY_CONTAINS_ANY , NOT_IN , NOT_EQUAL , IS_NOT_NULL , বা IS_NOT_NAN
  • যে field orderBy প্রথমে আসে।

ইউনারি ফিল্টার

একটি একক অপারেন্ড সহ একটি ফিল্টার৷

JSON প্রতিনিধিত্ব
{
  "op": enum (Operator),

  // Union field operand_type can be only one of the following:
  "field": {
    object (FieldReference)
  }
  // End of list of possible types for union field operand_type.
}
ক্ষেত্র
op

enum ( Operator )

ইউনারী অপারেটর আবেদন করতে হবে।

ইউনিয়ন ফিল্ড operand_type । ফিল্টার যুক্তি. operand_type নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
field

object ( FieldReference )

যে ক্ষেত্রে অপারেটর প্রয়োগ করতে হবে।

অপারেটর

একজন ইউনারি অপারেটর।

Enums
OPERATOR_UNSPECIFIED অনির্দিষ্ট। এই মান ব্যবহার করা উচিত নয়.
IS_NAN প্রদত্ত field NaN এর সমান।
IS_NULL প্রদত্ত field NULL এর সমান।
IS_NOT_NAN

প্রদত্ত field NaN এর সমান নয়।

প্রয়োজন:

  • অন্য কোন NOT_EQUAL , NOT_IN , IS_NOT_NULL , বা IS_NOT_NAN
  • যে field orderBy প্রথমে আসে।
IS_NOT_NULL

প্রদত্ত field NULL এর সমান নয়।

প্রয়োজন:

  • একটি একক NOT_EQUAL , NOT_IN , IS_NOT_NULL , বা IS_NOT_NAN
  • যে field orderBy প্রথমে আসে।

অর্ডার

একটি মাঠে একটি আদেশ.

JSON প্রতিনিধিত্ব
{
  "field": {
    object (FieldReference)
  },
  "direction": enum (Direction)
}
ক্ষেত্র
field

object ( FieldReference )

ক্ষেত্র দ্বারা আদেশ.

direction

enum ( Direction )

নির্দেশনা দ্বারা আদেশ. ASCENDING এ ডিফল্ট।

অভিমুখ

একটি সাজানোর দিক।

Enums
DIRECTION_UNSPECIFIED অনির্দিষ্ট।
ASCENDING আরোহী।
DESCENDING অবরোহী।

নিকটতম খুঁজুন

নিকটতম প্রতিবেশীদের অনুসন্ধান কনফিগ।

JSON প্রতিনিধিত্ব
{
  "vectorField": {
    object (FieldReference)
  },
  "queryVector": {
    object (Value)
  },
  "distanceMeasure": enum (DistanceMeasure),
  "limit": integer
}
ক্ষেত্র
vectorField

object ( FieldReference )

প্রয়োজন। অনুসন্ধান করার জন্য একটি সূচীযুক্ত ভেক্টর ক্ষেত্র। শুধুমাত্র যে নথিতে ভেক্টর রয়েছে যার মাত্রা ক্যোয়ারীভেক্টরের সাথে মেলে।

queryVector

object ( Value )

প্রয়োজন। আমরা অনুসন্ধান করছি যে ক্যোয়ারী ভেক্টর. 2048-এর বেশি মাত্রার ভেক্টর হতে হবে।

distanceMeasure

enum ( DistanceMeasure )

প্রয়োজন। ব্যবহার করার জন্য দূরত্ব পরিমাপ, প্রয়োজন.

limit

integer

প্রয়োজন। নিকটতম প্রতিবেশীর সংখ্যা ফিরতে হবে। 1000-এর বেশি একটি ধনাত্মক পূর্ণসংখ্যা হতে হবে।

দূরত্ব পরিমাপ

ভেক্টর তুলনা করার সময় যে দূরত্ব পরিমাপ ব্যবহার করতে হবে।

Enums
DISTANCE_MEASURE_UNSPECIFIED সেট করা উচিত নয়।
EUCLIDEAN ভেক্টরের মধ্যে EUCLIDEAN দূরত্ব পরিমাপ করে। আরও জানতে ইউক্লিডিয়ান দেখুন
COSINE তাদের মধ্যকার কোণের উপর ভিত্তি করে ভেক্টরের তুলনা করে, যা আপনাকে সাদৃশ্য পরিমাপ করতে দেয় যা ভেক্টরের মাত্রার উপর ভিত্তি করে নয়। আমরা COSINE দূরত্বের পরিবর্তে ইউনিট স্বাভাবিক ভেক্টর সহ DOT_PRODUCT ব্যবহার করার পরামর্শ দিই, যা গাণিতিকভাবে আরও ভাল পারফরম্যান্সের সমতুল্য। আরও জানতে কোসাইন সাদৃশ্য দেখুন।
DOT_PRODUCT কোসাইনের মতো কিন্তু ভেক্টরের মাত্রার দ্বারা প্রভাবিত হয়। আরও জানতে ডট পণ্য দেখুন।