إنشاء استعلام يستدعي الترتيب الدلالي وإرجاع التسميات التوضيحية الدلالية

هام

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

البحث الدلالي هو ميزة متميزة في Azure Cognitive Search تستدعي خوارزمية ترتيب دلالي على مجموعة نتائج وترجع التسميات التوضيحية الدلالية ( والإجابات الدلالية اختياريا)، مع تسليط الضوء على المصطلحات والعبارات الأكثر صلة. يتم إرجاع كل من التسميات التوضيحية والإجابات في طلبات الاستعلام التي تمت صياغتها باستخدام نوع الاستعلام "الدلالي".

يتم استخراج التسميات التوضيحية والإجابات حرفيا من النص الموجود في مستند البحث. يحدد النظام الفرعي الدلالي أي جزء من المحتوى الخاص بك له خصائص التسمية التوضيحية أو الإجابة، ولكنه لا يؤلف جملا أو عبارات جديدة. لهذا السبب، يعمل المحتوى الذي يتضمن تفسيرات أو تعريفات بشكل أفضل للبحث الدلالي.

المتطلبات الأساسية

  • خدمة البحث المعرفي في المستوى القياسي (S1 ، S2 ، S3) ، الموجود في إحدى هذه المناطق: أستراليا الشرقية ، شرق الولايات المتحدة ، شرق الولايات المتحدة 2 ، شمال وسط الولايات المتحدة ، جنوب وسط الولايات المتحدة ، غرب الولايات المتحدة ، غرب الولايات المتحدة 2 ، شمال أوروبا ، جنوب المملكة المتحدة ، أوروبا الغربية. إذا كان لديك خدمة S1 حالية أو أحدث في إحدى هذه المناطق، فيمكنك تمكين البحث الدلالي على خدمتك دون الحاجة إلى إنشاء خدمة جديدة.

  • تم تمكين البحث الدلالي على خدمة البحث الخاصة بك.

  • فهرس بحث موجود يحتوي على محتوى بلغة مدعومة. يعمل البحث الدلالي بشكل أفضل على المحتوى المعلوماتي أو الوصفي.

  • عميل بحث لإرسال الاستفسارات.

    يجب أن يدعم عميل البحث معاينة واجهات برمجة تطبيقات REST على طلب الاستعلام. يمكنك استخدام ساعي البريدأو رمز Visual Studio أو التعليمات البرمجية التي تقوم بإجراء مكالمات REST إلى واجهات برمجة تطبيقات المعاينة. يمكنك أيضا استخدام مستكشف البحث في مدخل Azure لإرسال استعلام دلالي أو استخدام Azure.Search.Documents 11.4.0-beta.5.

  • عميل بحث لتحديث الفهارس.

    يجب أن يدعم عميل البحث معاينة واجهات برمجة تطبيقات REST على طلب الاستعلام. يمكنك استخدام مدخل Azure أو ساعي البريد أو التعليمات البرمجية Visual Studio أو التعليمات البرمجية التي تقوم بإجراء استدعاءات REST إلى واجهات برمجة تطبيقات المعاينة. يمكنك أيضا استخدام Azure.Search.Documents 11.4.0-beta.5.

  • يجب أن يتضمن queryType=semanticطلب استعلام والمعلمات الأخرى الموضحة في هذه المقالة.

ما نوع الاستعلام الدلالي؟

في البحث المعرفي، الاستعلام هو طلب معلمات يحدد معالجة الاستعلام وشكل الاستجابة. يحتوي الاستعلام الدلالي على معلمات تستدعي نموذج إعادة الترتيب الدلالي الذي يمكنه تقييم سياق ومعنى مطابقة النتائج ، والترويج لتطابقات أكثر ملاءمة إلى الأعلى ، وإرجاع الإجابات الدلالية والتسميات التوضيحية.

لقد تغير نهج إدراج الحقول بترتيب الأولوية مؤخرا، حيث حل semanticConfiguration محل searchFields. إذا كنت تستخدم حاليا searchFields، فيرجى تحديث التعليمات البرمجية إلى إصدار واجهة برمجة التطبيقات 2021-04-30-Preview واستخدام semanticConfiguration بدلا من ذلك.

يمثل الطلب التالي الحد الأدنى من الاستعلام الدلالي (بدون إجابات).

POST https://[service name].search.windows.net/indexes/[index name]/docs/search?api-version=2021-04-30-Preview      
{    
    "search": " Where was Alan Turing born?",    
    "queryType": "semantic",  
    "semanticConfiguration": "my-semantic-config",
    "queryLanguage": "en-us"  
}

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

الفرق يكمن في الأهمية والتسجيل. كما هو محدد في إصدار المعاينة هذا، فإن الاستعلام الدلالي هو الاستعلام الذي يتم إعادة ترتيب نتائجه باستخدام نموذج لغة دلالية، مما يوفر طريقة لعرض التطابقات التي يعتبرها المصنف الدلالي الأكثر ملاءمة، بدلا من الدرجات التي تحددها خوارزمية ترتيب التشابه الافتراضية.

يمكن ترتيب أفضل 50 مباراة فقط من النتائج الأولية دلاليا ، وتتضمن جميع النتائج تسميات توضيحية في الاستجابة. اختياريا، يمكنك تحديد answer معلمة على الطلب لاستخراج إجابة محتملة. لمزيد من المعلومات، راجع الإجابات الدلالية.

إنشاء تكوين دلالي

ملاحظة

تعد التكوينات الدلالية إضافة جديدة إلى واجهة برمجة تطبيقات 2021-04-30-Preview وهي مطلوبة الآن للاستعلامات الدلالية. في حالة استخدام 2020-06-30-Preview، يتم استخدام searchFields بدلا من semanticConfiguration. نوصي بالترقية إلى 2021-04-30-Preview واستخدام semanticConfiguration للحصول على أفضل النتائج.

للحصول على أفضل النتائج من البحث الدلالي، من المهم إعطاء النماذج الأساسية تلميحات حول الحقول الأكثر أهمية في فهرسك للترتيب الدلالي والتسميات التوضيحية والنقاط البارزة والإجابات. لتوفير هذه المعلومات، ستحتاج إلى إنشاء تكوين دلالي.

يحتوي التكوين الدلالي على خصائص لسرد ثلاثة أنواع مختلفة من الحقول، والتي تعود إلى المدخلات التي تتوقعها النماذج الأساسية للبحث الدلالي:

  • حقل العنوان - يجب أن يكون حقل العنوان وصفا موجزا للمستند ، ومن الناحية المثالية سلسلة أقل من 25 كلمة. قد يكون هذا هو عنوان المستند أو اسم المنتج أو العنصر في فهرس البحث. إذا لم يكن لديك عنوان في فهرس البحث، فاترك هذا الحقل فارغا.
  • حقول المحتوى - يجب أن تحتوي حقول المحتوى على نص في شكل لغة طبيعية. الأمثلة الشائعة للمحتوى هي نص مستند أو وصف منتج أو نص حر آخر.
  • حقول الكلمات الرئيسية - يجب أن تكون حقول الكلمات الرئيسية قائمة بالكلمات الرئيسية، مثل العلامات الموجودة على مستند، أو مصطلحا وصفيا، مثل فئة العنصر.

يمكنك فقط تحديد حقل عنوان واحد كجزء من التكوين الدلالي ولكن يمكنك تحديد أي عدد تريده من حقول المحتوى والكلمات الرئيسية. ومع ذلك، من المهم إدراج حقلي المحتوى والكلمات الرئيسية بترتيب الأولوية لأنه قد يتم اقتطاع حقول الأولوية الأقل. سيتم إعطاء الحقول المدرجة أولا أولوية أعلى.

يطلب منك فقط تحديد حقل واحد بين titleField، و prioritizedKeywordsFields، prioritizedContentFieldsولكن من الأفضل إضافة الحقول إلى التكوين الدلالي إذا كانت موجودة في فهرس البحث.

على غرار ملفات تعريف النقاط، تعد التكوينات الدلالية جزءا من تعريف الفهرس الخاص بك ويمكن تحديثها في أي وقت دون إعادة إنشاء الفهرس . عند إصدار استعلام، ستضيف الاستعلام الذي يحدد التكوين الدلالي semanticConfiguration الذي تريد استخدامه للاستعلام.

  1. سجل الدخول إلى مدخل Azure وانتقل إلى خدمة بحث تم تمكين البحث الدلالي عليها.

  2. افتح فهرسا.

  3. حدد التكوينات الدلالية ، ثم حدد إضافة تكوين دلالي.

    تفتح صفحة التكوين الدلالي الجديد مع خيارات لتحديد حقل عنوان وحقول محتوى وحقول كلمات رئيسية. تأكد من إدراج حقول المحتوى وحقول الكلمات الرئيسية بترتيب الأولوية.

    حدد موافق لحفظ التغييرات.

    Screenshot that shows how to create a semantic configuration in the Azure portal.

للاطلاع على مثال لإنشاء تكوين دلالي واستخدامه لإصدار استعلام دلالي، راجع عينة ساعي البريد للبحث الدلالي.

أنواع البيانات المسموح بها

عند تحديد حقول للتكوين الدلالي، اختر فقط حقول أنواع البيانات المدعومة التالية. إذا قمت بتضمين حقل غير صالح، فلن يكون هناك خطأ، ولكن لن يتم استخدام هذه الحقول في الترتيب الدلالي.

نوع البيانات مثال من فهرس عينة الفنادق
Edm.String اسم الفندق، الفئة، الوصف
Edm.ComplexType العنوان.الشارعالرقم، العنوان.المدينة، العنوان.الولايةالمقاطعة، العنوان.الرمز البريدي
مجموعة (Edm.String) العلامات (قائمة سلاسل محددة بفواصل)

ملاحظة

الحقول الفرعية لحقول المجموعة (Edm.ComplexType) غير مدعومة حاليا بالبحث الدلالي ولن يتم استخدامها للترتيب الدلالي أو التسميات التوضيحية أو الإجابات.

Query in Azure portal

تم تحديث مستكشف البحث لتضمين خيارات الاستعلامات الدلالية. لإنشاء استعلام دلالي في البوابة الإلكترونية، اتبع الخطوات التالية:

  1. افتح مدخل Azure وانتقل إلى خدمة بحث تم تمكين البحث الدلالي عليها.

  2. انقر على مستكشف البحث في أعلى صفحة النظرة العامة.

  3. اختر فهرسا يحتوي على محتوى بلغة مدعومة.

  4. في مستكشف البحث، قم بتعيين خيارات الاستعلام التي تمكن الاستعلامات الدلالية والتكوينات الدلالية والتصحيح الإملائي. يمكنك أيضا لصق معلمات الاستعلام المطلوبة في سلسلة الاستعلام.

Screen shot showing query options in Search explorer.

الاستعلام باستخدام REST

استخدم مستندات البحث (معاينة REST) لصياغة الطلب برمجيا. تتضمن الاستجابة تسميات توضيحية وتمييزا تلقائيا. إذا كنت تريد تصحيحا إملائيا أو إجابات في الاستجابة، فأضف speller الطلب أو answers إليه.

يستخدم المثال التالي فهرس نماذج الفنادق لإنشاء طلب استعلام دلالي مع التدقيق الإملائي والإجابات الدلالية والتسميات التوضيحية:

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2021-04-30-Preview      
{
    "search": "newer hotel near the water with a great restaurant",
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config",
    "speller": "lexicon",
    "answers": "extractive|count-3",
    "captions": "extractive|highlight-true",
    "highlightPreTag": "<strong>",
    "highlightPostTag": "</strong>",
    "select": "HotelId,HotelName,Description,Category",
    "count": true
}

يلخص الجدول التالي المعلمات المستخدمة في استعلام دلالي. للحصول على قائمة بجميع المعلمات في طلب، راجع البحث في المستندات (معاينة REST)

المعلَمة النوع الوصف
نوع الاستعلام سلسلة تتضمن القيم الصالحة بسيطة وكاملة ودلالية. مطلوب قيمة "دلالية" للاستعلامات الدلالية.
لغة الاستعلام سلسلة مطلوب للاستعلامات الدلالية. ينطبق المعجم الذي تحدده بالتساوي على الترتيب الدلالي والتسميات التوضيحية والإجابات والتدقيق الإملائي. لمزيد من المعلومات، راجع اللغات المعتمدة (مرجع واجهة برمجة تطبيقات REST).
التكوين الدلالي سلسلة مطلوب للاستعلامات الدلالية. اسم التكوين الدلالي الخاص بك.

على النقيض من أنواع الاستعلامات البسيطة والكاملة، يحدد الترتيب الذي يتم به سرد الحقول الأسبقية. لمزيد من إرشادات الاستخدام، راجع إنشاء تكوين دلالي.
سبيلر سلسلة معلمة اختيارية، غير محددة للاستعلامات الدلالية، تقوم بتصحيح المصطلحات التي بها أخطاء إملائية قبل وصولها إلى محرك البحث. لمزيد من المعلومات، راجع إضافة تصحيح إملائي إلى الاستعلامات.
إجابات سلسلة معلمات اختيارية تحدد ما إذا كانت الإجابات الدلالية مضمنة في النتيجة أم لا. حاليا ، يتم تنفيذ "الاستخراجية" فقط. يمكن تكوين الإجابات لإرجاع عشرة إجابات كحد أقصى. الافتراضي هو واحد. يوضح هذا المثال عددا من ثلاث إجابات: extractive|count-3. لمزيد من المعلومات، راجع إرجاع الإجابات الدلالية.
تسميات توضيحية سلسلة المعلمات الاختيارية التي تحدد ما إذا كانت التسميات التوضيحية الدلالية مضمنة في النتيجة أم لا. حاليا ، يتم تنفيذ "الاستخراجية" فقط. يمكن تكوين التسميات التوضيحية لعرض النتائج مع أو بدون تمييزات. الافتراضي هو ليتم إرجاع النقاط البارزة. يعرض هذا المثال التسميات التوضيحية بدون تمييزات: extractive|highlight-false. لمزيد من المعلومات، راجع إرجاع الإجابات الدلالية.

صياغة الطلب

يخطو هذا القسم خطوات من خلال صياغة الاستعلام.

الخطوة 1: تعيين queryType و queryLanguage

أضف المعلمات التالية إلى الباقي. كلا المعلمتين مطلوبتان.

"queryType": "semantic",
"queryLanguage": "en-us",

يجب أن تكون لغة الاستعلام لغة معتمدة ويجب أن تكون متسقة مع أي محللات لغة تم تعيينها لتعريفات الحقول في مخطط الفهرس. على سبيل المثال، قمت بفهرسة سلاسل فرنسية باستخدام محلل لغة فرنسية (مثل "fr.microsoft" أو "fr.lucene")، ثم يجب أن تكون queryLanguage أيضا متغير اللغة الفرنسية.

في طلب استعلام، إذا كنت تستخدم أيضا التصحيح الإملائي، فإن لغة الاستعلام التي قمت بتعيينها تنطبق بالتساوي على التهجئة والإجابات والتسميات التوضيحية. لا يوجد تجاوز للأجزاء الفردية. يدعم التدقيق الإملائي لغات أقل، لذلك إذا كنت تستخدم هذه الميزة، فيجب عليك تعيين queryLanguage إلى لغة واحدة من تلك القائمة.

على الرغم من أن المحتوى الموجود في فهرس البحث يمكن أن يتكون بلغات متعددة، إلا أن إدخال الاستعلام يكون على الأرجح في لغة واحدة. لا يتحقق محرك البحث من توافق queryLanguage ومحلل اللغة واللغة التي يتكون بها المحتوى، لذا تأكد من تحديد نطاق الاستعلامات وفقا لذلك لتجنب إنتاج نتائج غير صحيحة.

الخطوة 2: تعيين semanticConfiguration

إضافة تكوين دلالي إلى الطلب. التكوين الدلالي مطلوب ومهم للحصول على أفضل النتائج من البحث الدلالي.

"semanticConfiguration": "my-semantic-config",

يستخدم التكوين الدلالي لإخبار نماذج البحث الدلالي بالحقول الأكثر أهمية لإعادة ترتيب نتائج البحث استنادا إلى التشابه الدلالي.

الخطوة 3: إزالة ميزات الاستعلام أو وضعها بين قوسين والتي تتجاوز نقاط الصلة

لا تخضع العديد من قدرات الاستعلام في البحث المعرفي لتسجيل نقاط الصلة ، وبعضها يتجاوز محرك بحث النص الكامل تماما. إذا كان منطق الاستعلام يتضمن الميزات التالية، فلن تحصل على درجات صلة أو ترتيب دلالي في نتائجك:

  • تتكرر عوامل التصفية واستعلامات البحث الغامضة والتعبيرات العادية على نص غير مميز ، وتبحث عن التطابقات الحرفية في المحتوى. درجات البحث لجميع نماذج الاستعلام المذكورة أعلاه هي 1.0 موحدة، ولن توفر مدخلات ذات مغزى للترتيب الدلالي.

  • سيؤدي الفرز (الترتيب حسب العبارات) في حقول معينة أيضا إلى تجاوز درجات البحث والنتيجة الدلالية. نظرا لاستخدام النتيجة الدلالية لترتيب النتائج، سيؤدي تضمين منطق الفرز الصريح إلى إرجاع خطأ HTTP 400.

الخطوة 4: إضافة إجابات وتسميات توضيحية

اختياريا، أضف "إجابات" و"تسميات توضيحية" إذا كنت تريد تضمين معالجة إضافية توفر إجابة وتسميات توضيحية. للحصول على تفاصيل حول هذه المعلمة، راجع كيفية تحديد الإجابات الدلالية.

"answers": "extractive|count-3",
"captions": "extractive|highlight-true",

يتم استخراج الإجابات (والتسميات التوضيحية) من المقاطع الموجودة في الحقول المدرجة في التكوين الدلالي. هذا هو السبب في أنك تريد تضمين حقول غنية بالمحتوى في الحقول ذات الأولوية للمحتوى في تكوين دلالي، بحيث يمكنك الحصول على أفضل الإجابات والتسميات التوضيحية في الاستجابة. الإجابات غير مضمونة على كل طلب. للحصول على إجابة، يجب أن يبدو الاستعلام وكأنه سؤال ويجب أن يتضمن المحتوى نصا يشبه الإجابة.

الخطوة 5: إضافة معلمات أخرى

قم بتعيين أي معلمات أخرى تريدها في الطلب. تعمل معلمات مثل spellerوالتحديد والعد على تحسين جودة الطلب وقابلية قراءة الاستجابة.

"speller": "lexicon",
"select": "HotelId,HotelName,Description,Category",
"count": true,
"highlightPreTag": "<mark>",
"highlightPostTag": "</mark>",

يتم تطبيق نمط التمييز على التسميات التوضيحية في الاستجابة. يمكنك استخدام النمط الافتراضي، أو تخصيص نمط التمييز المطبق على التسميات التوضيحية اختياريا. تطبق التسميات التوضيحية تنسيق التمييز على المقاطع الرئيسية في المستند التي تلخص الاستجابة. الافتراضي هو <em>. إذا كنت تريد تحديد نوع التنسيق (على سبيل المثال، الخلفية الصفراء)، يمكنك تعيين التمييز Pretag و HighlightPostTag.

الاستعلام باستخدام Azure SDKs

تتضمن الإصدارات التجريبية من Azure SDKs دعما للبحث الدلالي. نظرا لأن SDKs هي إصدارات تجريبية، فلا توجد وثائق أو عينات، ولكن يمكنك الرجوع إلى قسم واجهة برمجة تطبيقات REST أعلاه للحصول على رؤى حول كيفية عمل واجهات برمجة التطبيقات.

تقييم الاستجابة

كما هو الحال مع جميع الاستعلامات، تتكون الاستجابة من جميع الحقول التي تم وضع علامة عليها على أنها قابلة للاسترداد، أو فقط تلك الحقول المدرجة في المعلمة المحددة. يتضمن درجة الصلة الأصلية ، وقد يتضمن أيضا عددا ، أو نتائج مجمعة ، اعتمادا على كيفية صياغة الطلب.

في استعلام دلالي، تحتوي الاستجابة على عناصر إضافية: درجة ملاءمة جديدة مرتبة دلاليا، وتسميات توضيحية بنص عادي ومع إبرازات، وإجابة اختيارية.

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

ترجع الاستجابة لاستعلام المثال أعلاه المطابقة التالية كاختيار أعلى. يتم إرجاع التسميات التوضيحية تلقائيا، مع نص عادي وإصدارات مميزة. يتم حذف الإجابات من المثال لأنه لا يمكن تحديد واحد لهذا الاستعلام والمتن المحددين.

"@odata.count": 35,
"@search.answers": [],
"value": [
    {
        "@search.score": 1.8810667,
        "@search.rerankerScore": 1.1446577133610845,
        "@search.captions": [
            {
                "text": "Oceanside Resort. Luxury. New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
                "highlights": "<strong>Oceanside Resort.</strong> Luxury. New Luxury Hotel. Be the first to stay.<strong> Bay</strong> views from every room, location near the pier, rooftop pool, waterfront dining & more."
            }
        ],
        "HotelName": "Oceanside Resort",
        "Description": "New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
        "Category": "Luxury"
    },

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

تذكر أن الترتيب الدلالي والاستجابات مبنية على مجموعة نتائج أولية. أي منطق يحسن جودة النتائج الأولية سينتقل إلى البحث الدلالي. كخطوة تالية، راجع الميزات التي تساهم في النتائج الأولية، بما في ذلك أجهزة التحليل التي تؤثر على كيفية ترميز السلاسل، وملفات تعريف التسجيل التي يمكنها ضبط النتائج، وخوارزمية الصلة الافتراضية.