إنشاء استعلام نص كامل في Azure الذكاء الاصطناعي Search

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

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

  • فهرس بحث مع حقول سلسلة منسوبة ك searchable.

  • قراءة الأذونات على فهرس البحث. للوصول للقراءة، قم بتضمين مفتاح API للاستعلام على الطلب، أو امنح المتصل أذونات قارئ بيانات فهرس البحث.

مثال لطلب استعلام نصي كامل

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

يتم تحديد استعلام نص كامل في معلمة search ويتكون من مصطلحات وعبارات محاطة باقتباس وعوامل تشغيل. تضيف المعلمات الأخرى المزيد من التعريف إلى الطلب.

يوضح استدعاء Search POST REST API التالي طلب استعلام باستخدام المعلمات المذكورة أعلاه.

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2023-11-01
{
    "search": "NY +view",
    "queryType": "simple",
    "searchMode": "all",
    "searchFields": "HotelName, Description, Address/City, Address/StateProvince, Tags",
    "select": "HotelName, Description, Address/City, Address/StateProvince, Tags",
    "top": "10",
    "count": "true"
}

النقاط الرئيسية:

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

  • queryTypeيعين المحلل: simple، . full محلل الاستعلام البسيط الافتراضي هو الأمثل للبحث عن النص الكامل. محلل استعلام Lucene الكامل مخصص لبنى الاستعلام المتقدمة مثل التعبيرات العادية والبحث عن التقارب والبحث الغامض وأحرف البدل. يمكن أيضا تعيين هذه المعلمة إلى semantic للتصنيف الدلالي للنمذجة الدلالية المتقدمة في استجابة الاستعلام.

  • searchMode يحدد ما إذا كانت التطابقات تستند إلى معايير "الكل" (تفضل الدقة) أو "أي" معايير (يفضل الاستدعاء) في التعبير. الافتراضي هو "أي". إذا كنت تتوقع الاستخدام المكثف لعوامل التشغيل المنطقية، والتي من المرجح أن تكون في الفهارس التي تحتوي على كتل نصية كبيرة (حقل محتوى أو أوصاف طويلة)، فتأكد من اختبار الاستعلامات باستخدام searchMode=Any|All المعلمة لتقييم تأثير هذا الإعداد على البحث المنطقي.

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

المعلمات المستخدمة لتشكيل الاستجابة:

  • select يحدد الحقول التي يجب إرجاعها في الاستجابة. يمكن استخدام الحقول التي تم وضع علامة "استرداد" عليها فقط في عبارة تحديد.

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

  • count يخبرك عدد المستندات في الفهرس بأكمله المتطابقة بشكل عام، والتي يمكن أن تكون أكثر مما يتم إرجاعه.

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

اختيار عميل

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

لاستدعاء البحث من داخل تطبيق، استخدم مكتبات عميل Azure.Document.Search في Azure SDKs ل .NET وJava وJavaScript وPython.

في المدخل، عند فتح فهرس، يمكنك العمل مع Search Explorer إلى جانب تعريف JSON للفهرس في علامات التبويب جنبا إلى جنب للوصول السهل إلى سمات الحقول. تحقق من جدول الحقول لمعرفة تلك القابلة للبحث والفرز والتصفية والواجهات أثناء اختبار الاستعلامات.

  1. سجل الدخول إلى مدخل Microsoft Azure وابحث عن خدمة البحث.

  2. افتح الفهارس وحدد فهرسا.

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

    فيما يلي تعبير استعلام بحث نصي كامل يعمل مع فهرس عينة الفنادق:

       {
           "search": "pool spa +airport",
           "queryType": "simple",
           "searchMode": "any",
           "searchFields": "Description, Tags",
           "select": "HotelName, Description, Tags",
           "top": 10,
           "count": true
       }
    

    توضح لقطة الشاشة التالية الاستعلام والاستجابة:

    Screenshot of Search Explorer with a full text query.

اختر نوع استعلام: بسيط | الكامل

إذا كان الاستعلام عبارة عن بحث نصي كامل، يتم استخدام محلل استعلام لمعالجة أي نص يتم تمريره كمصطلحات وعبارات بحث. يوفر Azure الذكاء الاصطناعي Search محللات استعلام.

  • يفهم المحلل البسيط بناء جملة الاستعلام البسيط. تم تحديد هذا المحلل كافتراضي لسرعته وفعاليته في استعلامات نصية حرة. يدعم بناء الجملة عوامل تشغيل البحث الشائعة (AND، OR، NOT) لعمليات البحث عن المصطلحات والعبارات، والبحث عن البادئة (*) (كما هو الحال في "sea*" ل Seattle و Seaside). توصية عامة هي تجربة المحلل البسيط أولا، ثم الانتقال إلى المحلل الكامل إذا كانت متطلبات التطبيق تتطلب استعلامات أكثر قوة.

  • يستند بناء جملة استعلام Lucene الكامل، الذي تم تمكينه عند الإضافة queryType=full إلى الطلب، إلى محلل Apache Lucene.

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

اختيار أساليب الاستعلام

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

إدخال تجربة
طريقة البحث يكتب المستخدم المصطلحات أو العبارات في مربع بحث، مع عوامل التشغيل أو بدونها، ثم ينقر فوق بحث لإرسال الطلب. يمكن استخدام البحث مع عوامل التصفية على نفس الطلب، ولكن ليس مع الإكمال التلقائي أو الاقتراحات.
أسلوب الإكمال التلقائي يكتب المستخدم بضعة أحرف، ويتم بدء الاستعلامات بعد كتابة كل حرف جديد. الاستجابة هي سلسلة مكتملة من الفهرس. إذا كانت السلسلة المتوفرة صالحة، ينقر المستخدم فوق بحث لإرسال هذا الاستعلام إلى الخدمة.
طريقة الاقتراحات كما هو الحال مع الإكمال التلقائي، يكتب المستخدم بعض الأحرف ويتم إنشاء استعلامات تزايدية. الاستجابة هي قائمة منسدلة للمستندات المتطابقة، تمثلها عادة بعض الحقول الفريدة أو الوصفية. إذا كان أي من التحديدات صالحا، ينقر المستخدم فوق أحدها ويتم إرجاع المستند المطابق.
التنقل حسب الواجهات تعرض الصفحة ارتباطات التنقل القابلة للنقر أو مسارات التنقل التي تضيق نطاق البحث. تتكون بنية التنقل ذات الواجهات ديناميكيا استنادا إلى استعلام أولي. على سبيل المثال، search=* لملء شجرة تنقل ذات واجهة تتكون من كل فئة ممكنة. يتم إنشاء بنية تنقل ذات واجهة من استجابة استعلام، ولكنها أيضا آلية للتعبير عن الاستعلام التالي. n تم توثيق مرجع واجهة برمجة تطبيقات REST كمعلمة facets استعلام لعملية البحث في المستندات، ولكن يمكن استخدامه بدون المعلمة search .
أسلوب التصفية يتم استخدام عوامل التصفية مع الواجهات لتضييق النتائج. يمكنك أيضا تنفيذ عامل تصفية خلف الصفحة، على سبيل المثال لتهيئة الصفحة باستخدام حقول خاصة باللغة. في مرجع REST API، $filter يتم توثيقه كمعلمة استعلام لعملية البحث في المستندات، ولكن يمكن استخدامه دون المعلمة search .

تأثير سمات الحقل على الاستعلامات

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

في لقطة شاشة المدخل أدناه لمؤشر عينة الفنادق، فإن الحقلين الأخيرين فقط "LastRenovationDate" و"Rating" هما sortable، وهو شرط للاستخدام في "$orderby" عبارة فقط.

Index definition for the hotel sample

للحصول على تعريفات سمة الحقل، راجع إنشاء فهرس (واجهة برمجة تطبيقات REST).

تأثير الرموز المميزة على الاستعلامات

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

النقطة التي يجب أخذها هنا هي أن ما تعتقد أن الفهرس يحتوي عليه، وما هو موجود في الواقع، يمكن أن يكون مختلفا. إذا لم ترجع الاستعلامات النتائج المتوقعة، يمكنك فحص الرموز المميزة التي أنشأها المحلل من خلال Analyze Text (REST API). لمزيد من المعلومات حول الرمز المميز والتأثير على الاستعلامات، راجع البحث الجزئي عن المصطلحات والأنماط ذات الأحرف الخاصة.

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

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