إسقاط فهرس وإعادة إنشائه في البحث المعرفي في Azure

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

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

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

إعادة بناء الظروف

يعدد الجدول التالي الشروط التي تتطلب إعادة بناء.

الشرط الوصف
تغيير تعريف حقل تتطلب مراجعة اسم حقل أو نوع بيانات أو سمات فهرس معينة (قابلة للبحث أو قابلة للتصفية أو قابلة للفرز أو قابلة للوجه) إعادة إنشاء كاملة.
تعيين محلل إلى حقل يتم تعريف أجهزة التحليل في فهرس ثم يتم تعيينها إلى الحقول. يمكنك إضافة تعريف محلل جديد إلى فهرس في أي وقت، ولكن يمكنك فقط تعيين محلل عند إنشاء الحقل. هذا صحيح لكل من خصائص المحلل و indexAnalyzer . الخاصية searchAnalyzer هي استثناء (يمكنك تعيين هذه الخاصية إلى حقل موجود).
تحديث تعريف محلل أو حذفه في فهرس لا يمكنك حذف أو تغيير تكوين محلل موجود (محلل أو رمز مميز أو عامل تصفية رمز مميز أو عامل تصفية char) في الفهرس ما لم تقم بإعادة إنشاء الفهرس بأكمله.
إضافة حقل إلى مقترح إذا كان الحقل موجودا بالفعل وتريد إضافته إلى بنية المقترحين ، فيجب عليك إعادة إنشاء الفهرس.
حذف حقل لإزالة كافة آثار الحقل فعليا، يجب عليك إعادة إنشاء الفهرس. عندما تكون إعادة الإنشاء الفورية غير عملية، يمكنك تعديل التعليمات البرمجية للتطبيق لتعطيل الوصول إلى الحقل "المحذوف" أو استخدام معلمة استعلام $select لاختيار الحقول الممثلة في مجموعة النتائج. من الناحية المادية، يظل تعريف الحقل ومحتوياته في الفهرس حتى إعادة الإنشاء التالية، عند تطبيق مخطط يحذف الحقل المعني.
تبديل الطبقات إذا كنت بحاجة إلى سعة أكبر، فلا توجد ترقية موضعية في مدخل Azure. يجب إنشاء خدمة جديدة، ويجب إنشاء الفهارس من الصفر على الخدمة الجديدة. للمساعدة في أتمتة هذه العملية، يمكنك استخدام نموذج التعليمات البرمجية للفهرس والنسخ الاحتياطي واستعادة في هذا الريبو نموذج Azure Cognitive Search .NET. سيقوم هذا التطبيق بعمل نسخة احتياطية من الفهرس الخاص بك إلى سلسلة من ملفات JSON، ثم إعادة إنشاء الفهرس في خدمة بحث تحددها.

تحديث الشروط

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

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

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

كيفية إعادة إنشاء فهرس

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

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

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

  2. احصل على تعريف فهرس في حال احتجت إليه للرجوع إليه في المستقبل.

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

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

  4. إنشاء فهرس منقح، حيث يتضمن نص الطلب تعريفات الحقول التي تم تغييرها أو تعديلها.

  5. قم بتحميل الفهرس بمستندات من مصدر خارجي.

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

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

موازنة أعباء العمل

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

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

التحقق من وجود تحديثات

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

يمكنك استخدام "مستكشف البحث" أو أداة اختبار ويب مثل ساعي البريد أو رمز Visual Studio للتحقق من وجود محتوى محدث.

إذا أضفت حقلا أو قمت بإعادة تسميته، فاستخدم $select لإرجاع هذا الحقل: search=*&$select=document-id,my-new-field,some-old-field&$count=true

راجع أيضًا