تشغيل المفهرسات أو المهارات أو المستندات أو إعادة تعيينها

في Azure الذكاء الاصطناعي Search، هناك عدة طرق لتشغيل المفهرس:

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

كيفية اتصال المفهرسات بموارد Azure

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

تنفيذ المفهرس

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

تظهر لقطة الشاشة التالية عدد وحدات البحث، والتي تحدد عدد المفهرسات التي يمكن تشغيلها في وقت واحد.

لقطة شاشة لقسم الأساسيات في صفحة النظرة العامة، تظهر وحدات البحث.

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

يمكنك تشغيل مفهرسات متعددة في وقت واحد بافتراض سعة كافية، ولكن كل مفهرس نفسه هو مثيل واحد. يؤدي بدء مثيل جديد أثناء تنفيذ المفهرس بالفعل إلى حدوث هذا الخطأ: "Failed to run indexer "<indexer name>" error: "Another indexer invocation is currently in progress; concurrent invocations are not allowed."

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

تتضمن بيئات تنفيذ المفهرس ما يلي:

  • بيئة تنفيذ خاصة تعمل على عقد البحث، خاصة بخدمة البحث.

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

تختلف حدود المفهرس لكل بيئة:

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

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

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

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

تشغيل دون إعادة تعيين

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

يعد الكشف عن التغيير ضروريا لتحديد الجديد أو المحدث في مصدر البيانات. تستخدم المفهرسات قدرات الكشف عن التغيير لمصدر البيانات الأساسي لتحديد الجديد أو المحدث في مصدر البيانات.

  • يحتوي Azure Storage على اكتشاف تغيير مضمن من خلال الخاصية LastModified الخاصة به.

  • يجب تكوين مصادر البيانات الأخرى، مثل Azure SQL أو Azure Cosmos DB، للكشف عن التغيير قبل أن يتمكن المفهرس من قراءة الصفوف الجديدة والمحدثة.

إذا لم يتغير المحتوى الأساسي، فلن يكون لعملية التشغيل أي تأثير. في هذه الحالة، ستشير محفوظات تنفيذ المفهرس إلى 0\0 المستندات التي تمت معالجتها.

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

إعادة تعيين المفهرسات

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

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

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

كيفية إعادة تعيين المفهرسات وتشغيلها

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

يحدث العمل الفعلي عند اتباع إعادة تعيين باستخدام أمر تشغيل:

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

كما ذكرنا سابقا، تعد إعادة التعيين عملية سلبية: يجب متابعة طلب تشغيل لإعادة إنشاء الفهرس.

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

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

بمجرد إعادة تعيين مفهرس، لا يمكنك التراجع عن الإجراء.

  1. سجل الدخول إلى مدخل Microsoft Azure وافتح صفحة خدمة البحث.

  2. في صفحة Overview ، حدد علامة التبويب Indexers .

  3. حدد مفهرس.

  4. حدد الأمر إعادة تعيين، ثم حدد نعم لتأكيد الإجراء.

  5. قم بتحديث الصفحة لإظهار الحالة. يمكنك تحديد العنصر لعرض تفاصيله.

  6. حدد تشغيل لبدء معالجة المفهرس، أو انتظر التنفيذ المجدول التالي.

    لقطة شاشة لصفحة مدخل تنفيذ المفهرس، مع تمييز أمر إعادة التعيين.

كيفية إعادة تعيين المهارات (معاينة)

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

إعادة تعيين المهارات هي حاليا REST فقط، متوفرة من خلال api-version=2020-06-30-Preview أو أحدث.

POST /skillsets/[skillset name]/resetskills?api-version=2020-06-30-Preview
{
    "skillNames" : [
        "#1",
        "#5",
        "#6"
    ]
}

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

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

تذكر المتابعة باستخدام Run Indexer لاستدعاء المعالجة الفعلية.

كيفية إعادة تعيين المستندات (معاينة)

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

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

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

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

  1. اتصل ب Get Indexer Status باستخدام إصدار API أو إصدار api-version=2020-06-30-Preview أحدث، للتحقق من حالة إعادة الضبط وحالة التنفيذ. يمكنك العثور على معلومات حول طلب إعادة التعيين في نهاية استجابة الحالة.

  2. اتصل بإعادة تعيين المستندات باستخدام إصدار واجهة برمجة التطبيقات أو إصدار api-version=2020-06-30-Preview أحدث، لتحديد المستندات التي يجب معالجتها.

    POST https://[service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2020-06-30-Preview
    {
        "documentKeys" : [
            "1001",
            "4452"
        ]
    }
    
    • مفاتيح المستندات المتوفرة في الطلب هي قيم من فهرس البحث، والتي يمكن أن تختلف عن الحقول المقابلة في مصدر البيانات. إذا لم تكن متأكدا من قيمة المفتاح، أرسل استعلاما لإرجاع القيمة. يمكنك استخدام select لإرجاع حقل مفتاح المستند فقط.

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

  3. استدعاء مفهرس تشغيل (أي إصدار API) لمعالجة المستندات التي حددتها. تتم فهرسة هذه المستندات المحددة فقط.

  4. استدعاء "Run Indexer" مرة ثانية للمعالجة من آخر علامة مائية عالية.

  5. اتصل بمستندات البحث للتحقق من القيم المحدثة، وأيضا لإرجاع مفاتيح المستندات إذا لم تكن متأكدا من القيمة. استخدم "select": "<field names>" إذا كنت تريد تحديد الحقول التي تظهر في الاستجابة.

الكتابة فوق قائمة مفاتيح المستند

يؤدي استدعاء واجهة برمجة تطبيقات إعادة تعيين المستندات عدة مرات باستخدام مفاتيح مختلفة إلى إلحاق المفاتيح الجديدة بقائمة إعادة تعيين مفاتيح المستندات. سيؤدي استدعاء واجهة برمجة التطبيقات مع تعيين المعلمة overwrite إلى true إلى استبدال القائمة الحالية بالقائمة الجديدة:

POST https://[service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2020-06-30-Preview
{
    "documentKeys" : [
        "200",
        "630"
    ],
    "overwrite": true
}

التحقق من حالة إعادة التعيين "currentState"

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

  1. استدعاء الحصول على حالة المفهرس مع api-version=06-30-2020-Preview أو أحدث.

    ستعيد واجهة برمجة تطبيقات المعاينة currentState القسم، الذي تم العثور عليه في نهاية الاستجابة.

    "currentState": {
        "mode": "indexingResetDocs",
        "allDocsInitialTrackingState": "{\"LastFullEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"LastAttemptedEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"NameHighWaterMark\":null}",
        "allDocsFinalTrackingState": "{\"LastFullEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"LastAttemptedEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"NameHighWaterMark\":null}",
        "resetDocsInitialTrackingState": null,
        "resetDocsFinalTrackingState": null,
        "resetDocumentKeys": [
            "200",
            "630"
        ]
    }
    
  2. تحقق من "الوضع":

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

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

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

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

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

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