تشغيل المفهرسات أو المهارات أو المستندات أو إعادة تعيينها
يمكن استدعاء المفهرسات بثلاث طرق: عند الطلب أو في جدول زمني أو عند إنشاء المفهرس، على افتراض أنه لم يتم إنشاؤه في وضع "معطل". توضح هذه المقالة كيفية تشغيل المفهرسات عند الطلب، مع إعادة تعيين وبدونها.
إعادة تعيين المفهرسات
بعد التشغيل الأولي ، يتتبع المفهرس مستندات البحث التي تمت فهرستها من خلال علامة داخلية عالية المياه. لا يتم الكشف عن العلامة أبدا ، ولكن داخليا يعرف المفهرس أين توقفت آخر مرة ، بحيث يمكنها المتابعة من حيث توقفت في الجولة التالية.
إذا كنت بحاجة إلى إعادة إنشاء فهرس بالكامل أو جزء منه، فيمكنك مسح علامة المياه العالية للمفهرس من خلال إعادة تعيين. تتوفر واجهات برمجة التطبيقات لإعادة التعيين بمستويات متناقصة في التدرج الهرمي للكائنات:
- تقوم مفهرسات إعادة التعيين بمسح علامة المياه العالية وإجراء إعادة فهرسة كاملة لجميع المستندات
- إعادة تعيين المستندات (معاينة) إعادة فهرسة مستند معين أو قائمة مستندات معينة
- إعادة تعيين المهارات (المعاينة) يستدعي معالجة المهارات لمهارة معينة
بعد إعادة التعيين، اتبع الأمر "تشغيل" لإعادة معالجة المستندات الجديدة والموجودة. لا يمكن إزالة مستندات البحث المعزولة التي لا يوجد لها نظير في مصدر البيانات من خلال إعادة التعيين/التشغيل. إذا كنت بحاجة إلى حذف المستندات، فراجع إضافة مستندات أو تحديثها أو حذفها بدلا من ذلك.
تنفيذ المفهرس
لا يتم تشغيل الفهرسة في الخلفية. بدلا من ذلك، ستقوم خدمة البحث بموازنة جميع مهام الفهرسة مع الاستعلامات المستمرة وإجراءات إدارة الكائنات (مثل إنشاء الفهارس أو تحديثها). عند تشغيل المفهرسات، يجب أن تتوقع رؤية بعض زمن انتقال الاستعلام إذا كانت وحدات تخزين الفهرسة كبيرة.
يمكنك تشغيل مفهرسات متعددة في وقت واحد، ولكن كل مفهرس نفسه هو مثيل واحد. يؤدي بدء تشغيل مثيل جديد أثناء تنفيذ المفهرس بالفعل إلى حدوث هذا الخطأ: "Failed to run indexer "<indexer name>" error: "Another indexer invocation is currently in progress; concurrent invocations are not allowed."
تختلف حدود المفهرس حسب عبء العمل. لكل عبء عمل، تنطبق حدود الوظائف التالية.
| حمل العمل | المدة القصوى | الحد الأقصى للوظائف | بيئة التنفيذ 1 |
|---|---|---|---|
| الفهرسة المستندة إلى النص | 24 ساعة | واحد لكل وحدة بحث 2 | عادة ما يتم تشغيله على خدمة البحث. |
| الفهرسة القائمة على المهارات | ساعتان | معرفه | عادة ما يتم تشغيله على مجموعة معالجة محتوى متعددة المستأجرين تتم إدارتها داخليا ، اعتمادا على مدى تعقيد مجموعة المهارات. قد يتم تنفيذ مهارة بسيطة على خدمة البحث الخاصة بك إذا كانت الخدمة لديها سعة. خلاف ذلك ، يتم تنفيذ وظائف المفهرس القائمة على المهارات خارج الخدمة. نظرا لأن مجموعة معالجة المحتوى متعددة المستأجرين، تتم إضافة العقد لتلبية الطلب. إذا واجهت تأخيرا في التنفيذ عند الطلب أو التنفيذ المجدول ، فمن المحتمل أن يكون ذلك لأن النظام إما يضيف عقدا أو ينتظر توفر واحدة. |
1 للحصول على المعالجة المثلى، ستحدد خدمة البحث بيئة تنفيذ داخلية لعملية المفهرس. لا يمكنك التحكم في البيئة أو تكوينها، ولكن استنادا إلى عدد المهام وتعقيدها، ستقوم خدمة البحث إما بتشغيل المهمة نفسها، أو إلغاء تحميل المهام كثيفة الحساب إلى مجموعة مدارة داخليا، مما يترك المزيد من الموارد الخاصة بالخدمة متاحة للعمليات الروتينية. تتم إدارة البيئة متعددة المستأجرين المستخدمة لأداء المهام المكثفة حسابيا وتأمينها بواسطة Microsoft، دون أي تكلفة إضافية على العميل.
2 يمكن أن تكون وحدات البحث عبارة عن مجموعات مرنة من الأقسام والنسخ المتماثلة، ولا ترتبط مهام المفهرس القصوى بأحدهما أو الآخر. بمعنى آخر ، إذا كان لديك أربع وحدات ، فيمكنك الحصول على أربع وظائف مفهرس مستندة إلى النص تعمل بشكل متزامن ، بغض النظر عن كيفية نشر وحدات البحث.
تلميح
إذا كنت تقوم بفهرسة مجموعة بيانات كبيرة ، فيمكنك تمديد المعالجة عن طريق وضع المفهرس في جدول زمني. للحصول على القائمة الكاملة لجميع الحدود المتعلقة بالمفهرس، راجع حدود المفهرس
تشغيل دون إعادة تعيين
سيقوم Run Indexer باكتشاف ومعالجة ما يلزم فقط لمزامنة فهرس البحث مع التغييرات في مصدر البيانات الأساسي. تبدأ الفهرسة التزايدية بتحديد موقع علامة داخلية عالية المياه للعثور على آخر مستند بحث تم تحديثه، والذي يصبح نقطة البداية لتنفيذ المفهرس على المستندات الجديدة والمحدثة في مصدر البيانات.
يعد اكتشاف التغيير ضروريا لتحديد ما هو جديد أو محدث في مصدر البيانات. إذا لم يتغير المحتوى، فلن يكون للتشغيل أي تأثير. يحتوي تخزين Blob على اكتشاف التغيير المدمج من خلال خاصية LastModified الخاصة به. يجب تكوين مصادر البيانات الأخرى، مثل Azure SQL أو Cosmos DB، للكشف عن التغيير قبل أن يتمكن المفهرس من قراءة الصفوف الجديدة والمحدثة.
كيفية إعادة تعيين المفهرسات وتشغيلها
تؤدي إعادة الضبط إلى مسح علامة المياه العالية. سيتم وضع علامة على جميع المستندات الموجودة في فهرس البحث للكتابة فوقها بالكامل، دون تحديثات مضمنة أو دمجها في المحتوى الموجود. بالنسبة للمفهرسين الذين لديهم مجموعة مهارات وتخزين مؤقت للإثراء، فإن إعادة تعيين المؤشر سيؤدي أيضا إلى إعادة تعيين مجموعة المهارات ضمنيا.
يحدث العمل الفعلي عند اتباع إعادة تعيين باستخدام أمر تشغيل:
- ستتم إضافة جميع المستندات الجديدة التي تم العثور عليها المصدر الأساسي إلى فهرس البحث.
- سيتم الكتابة فوق جميع المستندات الموجودة في كل من مصدر البيانات وفهرس البحث في فهرس البحث.
- سيتم إعادة بناء أي محتوى غني تم إنشاؤه من مجموعات المهارات. يتم تحديث ذاكرة التخزين المؤقت للتخصيب، إذا تم تمكين أحدها.
كما ذكرنا سابقا، إعادة التعيين هي عملية سلبية: يجب عليك متابعة طلب تشغيل لإعادة إنشاء الفهرس.
تنطبق عمليات إعادة التعيين/التشغيل على فهرس بحث أو مخزن معارف، وعلى مستندات أو إسقاطات محددة، وعلى عمليات الإثراء المخزنة مؤقتا إذا تضمنت إعادة التعيين مهارات بشكل صريح أو ضمني.
تنطبق إعادة التعيين أيضا على العمليات الجديدة وعمليات التحديث فقط. لن يؤدي إلى حذف أو تنظيف المستندات المعزولة في فهرس البحث. لمزيد من المعلومات حول حذف المستندات، راجع إضافة مستندات أو تحديثها أو حذفها.
بمجرد إعادة تعيين مفهرس، لا يمكنك التراجع عن الإجراء.
سجل الدخول إلى مدخل Azure وافتح صفحة خدمة البحث.
في صفحة نظرة عامة ، حدد علامة التبويب المفهرسات .
حدد مفهرسا.
حدد الأمر إعادة تعيين ، ثم حدد نعم لتأكيد الإجراء.
قم بتحديث الصفحة لإظهار الحالة. يمكنك تحديد العنصر لعرض تفاصيله.
حدد تشغيل لبدء معالجة المفهرس، أو انتظر التنفيذ المجدول التالي.
كيفية إعادة تعيين المهارات (معاينة)
بالنسبة للمفهرسين الذين لديهم مجموعات من المهارات ، يمكنك إعادة تعيين المهارات الفردية لفرض معالجة هذه المهارة فقط وأي مهارات نهائية تعتمد على مخرجاتها. يتم أيضا تحديث ذاكرة التخزين المؤقت للتخصيب، إذا قمت بتمكينها.
إعادة تعيين المهارات حاليا هي 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 نقطة أو تحديثها منذ تشغيل المفهرس الأخير، ولكنك قمت بإعادة تعيين مستند واحد فقط، معالجة مستند واحد فقط.
على أساس كل مستند، يتم تحديث جميع الحقول في مستند البحث هذا بقيم من مصدر البيانات. لا يمكنك انتقاء واختيار الحقول المراد تحديثها.
إذا تم إثراء المستند من خلال مجموعة مهارات ويحتوي على بيانات مخزنة مؤقتا، استدعاء مجموعة المهارات للمستندات المحددة فقط، ويتم تحديث ذاكرة التخزين المؤقت للمستندات المعاد معالجتها.
عند اختبار واجهة برمجة التطبيقات هذه لأول مرة، ستساعدك واجهات برمجة التطبيقات التالية في التحقق من صحة السلوكيات واختبارها:
اتصل بالحصول على حالة المفهرس باستخدام إصدار واجهة برمجة التطبيقات أو إصدار
api-version=2020-06-30-Previewأحدث، للتحقق من حالة إعادة التعيين وحالة التنفيذ. يمكنك العثور على معلومات حول طلب إعادة التعيين في نهاية استجابة الحالة.اتصل بإعادة تعيين المستندات باستخدام إصدار واجهة برمجة التطبيقات أو إصدار
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)، يتم إنشاء مفتاح المستند بواسطة المفهرس وقد يكون غير معروف لك. في هذا السيناريو، استعلام لمفتاح المستند لإرجاع القيمة الصحيحة.
استدعاء تشغيل المفهرس (أي إصدار API) لمعالجة المستندات التي حددتها. ولا تتم فهرسة سوى تلك الوثائق المحددة.
اتصل ب Run Indexer مرة ثانية للمعالجة من آخر علامة عالية المياه.
اتصل ب " البحث في المستندات" للتحقق من القيم المحدثة، وكذلك لإرجاع مفاتيح المستندات إذا لم تكن متأكدا من القيمة. استخدمه
"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"
للتحقق من حالة إعادة التعيين ومعرفة مفاتيح المستندات التي يتم وضعها في قائمة الانتظار للمعالجة، اتبع الخطوات التالية.
اتصل بالحصول على حالة المفهرس مع
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" ] }تحقق من "الوضع":
بالنسبة إلى "مهارات إعادة تعيين"، يجب تعيين "الوضع" على
indexingAllDocs(لأنه من المحتمل أن تتأثر جميع المستندات، من حيث الحقول التي يتم ملؤها من خلال الذكاء الاصطناعي الإثراء).بالنسبة إلى إعادة تعيين المستندات ، يجب تعيين "الوضع" على
indexingResetDocs. يحتفظ المفهرس بهذه الحالة حتى تتم معالجة كافة مفاتيح المستندات المتوفرة في استدعاء إعادة تعيين المستندات، وخلال هذه الفترة لن يتم تنفيذ أي مهام مفهرس أخرى أثناء تقدم العملية. يتطلب العثور على كافة المستندات في قائمة مفاتيح المستندات تكسير كل مستند لتحديد موقع المفتاح ومطابقته، وقد يستغرق ذلك بعض الوقت إذا كانت مجموعة البيانات كبيرة. إذا كانت حاوية الفقاعات تحتوي على مئات النقط، وكانت المستندات التي تريد إعادة تعيينها في النهاية، فلن يعثر المفهرس على النقط المطابقة حتى يتم التحقق من جميع المستندات الأخرى أولا.بعد إعادة معالجة المستندات، قم بتشغيل الحصول على حالة المفهرس مرة أخرى. يعود المفهرس إلى الوضع وسيقوم بمعالجة
indexingAllDocsأي مستندات جديدة أو محدثة في التشغيل التالي.
الخطوات التالية
يتم استخدام إعادة تعيين واجهات برمجة التطبيقات لإعلام نطاق تشغيل المفهرس التالي. للمعالجة الفعلية، ستحتاج إلى استدعاء تشغيل مفهرس عند الطلب أو السماح لمهمة مجدولة بإكمال العمل. بعد الانتهاء من التشغيل، يعود المفهرس إلى المعالجة العادية، سواء كان ذلك وفقا لجدول زمني أو معالجة عند الطلب.
بعد إعادة تعيين وظائف المفهرس وإعادة تشغيلها، يمكنك مراقبة الحالة من خدمة البحث، أو الحصول على معلومات مفصلة من خلال تسجيل التشخيص.