OData $select بناء الجملة في البحث المعرفي Azure

يمكنك استخدام معلمة OData $select لاختيار الحقول التي تريد تضمينها في نتائج البحث من Azure Cognitive Search. توضح هذه المقالة بناء جملة $select بالتفصيل. لمزيد من المعلومات العامة حول كيفية استخدام $select عند عرض نتائج البحث، راجع كيفية العمل مع نتائج البحث في Azure Cognitive Search.

بناء الجملة

تحدد معلمة $select الحقول لكل مستند التي يتم إرجاعها في مجموعة نتائج الاستعلام. يعرف EBNF (نموذج Backus-Naur الموسع) التالي القواعد النحوية للمعلمة $select :

select_expression ::= '*' | field_path(',' field_path)*

field_path ::= identifier('/'identifier)*

يتوفر أيضا رسم تخطيطي تفاعلي لبناء الجملة:

تأتي المعلمة $select في شكلين:

  1. نجمة واحدة (*)، تشير إلى أنه يجب إرجاع جميع الحقول القابلة للاسترجاع، أو
  2. قائمة مفصولة بفواصل من مسارات الحقول، تحدد الحقول التي يجب إرجاعها.

عند استخدام النموذج الثاني، يمكنك فقط تحديد الحقول القابلة للاسترداد في القائمة.

إذا قمت بإدراج حقل معقد دون تحديد حقوله الفرعية بشكل صريح، تضمين جميع الحقول الفرعية القابلة للاسترداد في مجموعة نتائج الاستعلام. على سبيل المثال، افترض أن الفهرس يحتوي على حقل يحتوي StreetCityعلى Address ، وحقول Country فرعية يمكن استردادها جميعا. إذا قمت بالتحديد Address في $select، فستتضمن نتائج الاستعلام جميع الحقول الفرعية الثلاثة.

أمثلة

قم بتضمين الحقول HotelId، HotelNameوالمستوى Rating الأعلى في النتائج ، بالإضافة إلى الحقل City الفرعي ل Address:

    $select=HotelId, HotelName, Rating, Address/City

مثال على النتيجة قد يبدو كما يلي:

{
  "HotelId": "1",
  "HotelName": "Secret Point Motel",
  "Rating": 4,
  "Address": {
    "City": "New York"
  }
}

قم بتضمين HotelName حقل المستوى الأعلى في النتائج ، بالإضافة إلى جميع الحقول الفرعية ل Address، والحقول TypeBaseRate الفرعية لكل كائن في Rooms المجموعة:

    $select=HotelName, Address, Rooms/Type, Rooms/BaseRate

مثال على النتيجة قد يبدو كما يلي:

{
  "HotelName": "Secret Point Motel",
  "Rating": 4,
  "Address": {
    "StreetAddress": "677 5th Ave",
    "City": "New York",
    "StateProvince": "NY",
    "Country": "USA",
    "PostalCode": "10022"
  },
  "Rooms": [
    {
      "Type": "Budget Room",
      "BaseRate": 9.69
    },
    {
      "Type": "Budget Room",
      "BaseRate": 8.09
    }
  ]
}

الخطوات التالية