مراقبة حالة المفهرس والنتائج في البحث المعرفي في Azure

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

المراقبة باستخدام مدخل Azure

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

Indexers list

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

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

Indexer summary and execution history

يعرض مخطط ملخص المفهرس رسما بيانيا لعدد المستندات التي تمت معالجتها في أحدث عملياتها.

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

Indexer execution details

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

Indexer details with errors

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

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

المراقبة باستخدام مقاييس مراقبة Azure

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

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

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

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

Indexer documents processed metric

يمكنك أيضا تكوين الرسم البياني لمعرفة عدد استدعاءات المهارات خلال نفس الفاصل الزمني للساعة.

Indexer skills invoked metric

المراقبة باستخدام الحصول على حالة المفهرس (REST API)

يمكنك استرداد محفوظات الحالة والتنفيذ لمفهرس باستخدام الأمر الحصول على حالة المفهرس:

GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2020-06-30
api-key: [Search service admin key]

تحتوي الاستجابة على حالة المفهرس الإجمالية، وآخر استدعاء مفهرس (أو قيد التقدم)، ومحفوظات استدعاءات المفهرس الأخيرة.

{
    "status":"running",
    "lastResult": {
        "status":"success",
        "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
     },
    "executionHistory":[ {
        "status":"success",
         "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
    }]
}

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

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

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

عند إعادة تعيين مفهرس لتحديث حالة تتبع التغيير الخاصة به، تتم إضافة إدخال محفوظات تنفيذ منفصل مع حالة إعادة تعيين .

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

مراقبة باستخدام .NET

باستخدام Azure Cognitive Search .NET SDK، يكتب مثال C# التالي معلومات حول حالة المفهرس ونتائج أحدث (أو مستمر) يتم تشغيلها على وحدة التحكم.

static void CheckIndexerStatus(SearchIndexerClient indexerClient, SearchIndexer indexer)
{
    try
    {
        string indexerName = "hotels-sql-idxr";
        SearchIndexerStatus execInfo = indexerClient.GetIndexerStatus(indexerName);

        Console.WriteLine("Indexer has run {0} times.", execInfo.ExecutionHistory.Count);
        Console.WriteLine("Indexer Status: " + execInfo.Status.ToString());

        IndexerExecutionResult result = execInfo.LastResult;

        Console.WriteLine("Latest run");
        Console.WriteLine("Run Status: {0}", result.Status.ToString());
        Console.WriteLine("Total Documents: {0}, Failed: {1}", result.ItemCount, result.FailedItemCount);

        TimeSpan elapsed = result.EndTime.Value - result.StartTime.Value;
        Console.WriteLine("StartTime: {0:T}, EndTime: {1:T}, Elapsed: {2:t}", result.StartTime.Value, result.EndTime.Value, elapsed);

        string errorMsg = (result.ErrorMessage == null) ? "none" : result.ErrorMessage;
        Console.WriteLine("ErrorMessage: {0}", errorMsg);
        Console.WriteLine(" Document Errors: {0}, Warnings: {1}\n", result.Errors.Count, result.Warnings.Count);
    }
    catch (Exception e)
    {
        // Handle exception
    }
}

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

Indexer has run 18 times.
Indexer Status: Running
Latest run
  Run Status: Success
  Total Documents: 7, Failed: 0
  StartTime: 11:29:31 PM, EndTime: 11:29:31 PM, Elapsed: 00:00:00.2560000
  ErrorMessage: none
  Document Errors: 0, Warnings: 0

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

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

عند إعادة تعيين مفهرس لتحديث حالة تتبع التغيير الخاصة به، تتم إضافة إدخال محفوظات منفصل مع حالة إعادة تعيين .

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

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