فهارس البحث في Azure الذكاء الاصطناعي Search

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

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

  • المحتوى (المستندات والمخطط)
  • بنية البيانات المادية
  • العملياتِ الأساسية

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

مخطط فهرس البحث

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

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

{
  "name": "name_of_index, unique across the service",
  "fields": [
    {
      "name": "name_of_field",
      "type": "Edm.String | Collection(Edm.String) | Collection(Edm.Single) | Edm.Int32 | Edm.Int64 | Edm.Double | Edm.Boolean | Edm.DateTimeOffset | Edm.GeographyPoint",
      "searchable": true (default where applicable) | false (only Edm.String and Collection(Edm.String) fields can be searchable),
      "filterable": true (default) | false,
      "sortable": true (default where applicable) | false (Collection(Edm.String) fields cannot be sortable),
      "facetable": true (default where applicable) | false (Edm.GeographyPoint fields cannot be facetable),
      "key": true | false (default, only Edm.String fields can be keys),
      "retrievable": true (default) | false,
      "analyzer": "name_of_analyzer_for_search_and_indexing", (only if 'searchAnalyzer' and 'indexAnalyzer' are not set)
      "searchAnalyzer": "name_of_search_analyzer", (only if 'indexAnalyzer' is set and 'analyzer' is not set)
      "indexAnalyzer": "name_of_indexing_analyzer", (only if 'searchAnalyzer' is set and 'analyzer' is not set)
      "normalizer":  "name_of_normalizer", (applies to fields that are filterable)
      "synonymMaps": "name_of_synonym_map", (optional, only one synonym map per field is currently supported)
      "dimensions": "number of dimensions used by an emedding models", (applies to vector fields only, of type Collection(Edm.Single))
      "vectorSearchProfile": "name_of_vector_profile" (indexes can have many configurations, a field can use just one)
    }
  ],
  "suggesters": [ ],
  "scoringProfiles": [ ],
  "analyzers":(optional)[ ... ],
  "charFilters":(optional)[ ... ],
  "tokenizers":(optional)[ ... ],
  "tokenFilters":(optional)[ ... ],
  "defaultScoringProfile": (optional) "...",
  "corsOptions": (optional) { },
  "encryptionKey":(optional){ },
  "semantic":(optional){ },
  "vectorSearch":(optional){ }
}

يتم طي العناصر الأخرى للإيجاز، ولكن توفر الارتباطات التالية تفاصيل:

تعريفات الحقول

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

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

سمات الحقل

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

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

السمة ‏‏الوصف
"قابل للبحث" نص كامل أو متجه قابل للبحث. تخضع الحقول النصية للتحليل المعجمي مثل تقسيم الكلمات أثناء الفهرسة. إذا قمت بتعيين حقل قابل للبحث إلى قيمة مثل "يوم مشمس"، يتم تقسيمه داخليا إلى الرموز المميزة الفردية "المشمسة" و"اليوم". للحصول على التفاصيل، راجع كيفية عمل البحث الكامل عن النص.
"قابل للتصفية" المشار إليها في استعلامات $filter. الحقول القابلة للتصفية من النوع Edm.String أو Collection(Edm.String) لا تخضع لكسر الكلمات، لذا فإن المقارنات هي للمطابقات الدقيقة فقط. على سبيل المثال، إذا قمت بتعيين مثل هذا الحقل f إلى "يوم مشمس"، $filter=f eq 'sunny' فلن تجد أي تطابقات، ولكن $filter=f eq 'sunny day' سيتم ذلك.
"قابل للفرز" بشكل افتراضي، يقوم النظام بفرز النتائج حسب النتيجة، ولكن يمكنك تكوين الفرز استنادا إلى الحقول في المستندات. لا يمكن أن تكون الحقول من النوع Collection(Edm.String) "قابلة للفرز".
"facetable" يستخدم عادة في عرض تقديمي لنتائج البحث يتضمن عدد مرات الوصول حسب الفئة (على سبيل المثال، الفنادق في مدينة معينة). لا يمكن استخدام هذا الخيار مع الحقول من النوع Edm.GeographyPoint. يمكن أن يكون طول الحقول من النوع Edm.String القابل للتصفية أو "قابلة للفرز" أو "قابلة للواجهة" 32 كيلو بايت على الأكثر. للحصول على التفاصيل، راجع إنشاء فهرس (REST API).
"مفتاح" معرف فريد للمستندات داخل الفهرس. يجب اختيار حقل واحد بالضبط ك حقل مفتاح ويجب أن يكون من النوع Edm.String.
"قابل للاسترداد" تحديد ما إذا كان يمكن إرجاع الحقل في نتيجة بحث. يكون هذا مفيدا عندما تريد استخدام حقل (مثل هامش الربح) كآلية تصفية أو فرز أو تسجيل، ولكنك لا تريد أن يكون الحقل مرئيا للمستخدم النهائي. يجب أن تكون true هذه السمة للحاول key .

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

إشعار

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

البنية المادية والحجم

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

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

يتم تحديد حجم الفهرس من خلال:

  • كمية المستندات وتكوينها
  • السمات في الحقول الفردية
  • تكوين الفهرس (على وجه التحديد، سواء قمت بتضمين المقترحين)

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

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

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

مثال يوضح الآثار المترتبة على التخزين للسمات والمقترحين

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

حجم الفهرس استنادا إلى تحديد السمة

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

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

كما لا ينعكس في الجدول السابق هو تأثير المحللات. إذا كنت تستخدم edgeNgram tokenizer لتخزين تسلسلات حرفية من الأحرف (a, ab, abc, abcd)، يكون الفهرس أكبر مما إذا كنت تستخدم المحلل القياسي.

العمليات الأساسية والتفاعل

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

إشعار

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

عزل الفهرس

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

متوفر باستمرار

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

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

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

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

اتصال نقطة النهاية والأمان

تستهدف جميع طلبات الفهرسة والاستعلام فهرسا. عادة ما تكون نقاط النهاية واحدة مما يلي:

نقطة النهاية التحكم في الاتصال والوصول
<your-service>.search.windows.net/indexes يستهدف مجموعة الفهارس. يستخدم عند إنشاء فهرس أو إدراجه أو حذفه. حقوق مسؤول مطلوبة لهذه العمليات، متوفرة من خلال المسؤول مفاتيح API أو دور Search Contributor.
<your-service>.search.windows.net/indexes/<your-index>/docs يستهدف مجموعة المستندات الخاصة بفهرس واحد. يستخدم عند الاستعلام عن تحديث فهرس أو بيانات. بالنسبة للاستعلامات، تكون حقوق القراءة كافية، ومتاحة من خلال مفاتيح واجهة برمجة التطبيقات للاستعلام أو دور قارئ البيانات. لتحديث البيانات، تكون حقوق المسؤول مطلوبة.
  1. ابدأ بمدخل Azure. يمكن لمشتركي Azure أو الشخص الذي أنشأ خدمة البحث إدارة خدمة البحث في مدخل Microsoft Azure. يتطلب اشتراك Azure أذونات المساهم أو أعلى لإنشاء الخدمات أو حذفها. مستوى الأذونات هذا كاف لإدارة خدمة بحث بالكامل في مدخل Microsoft Azure.

  2. جرب عملاء آخرين للوصول البرمجي. نوصي ببدء التشغيل السريع للخطوات الأولى:

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

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

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