الخطوة 2 - إنشاء فهرس البحث وتحميله باستخدام .NET

تابع إنشاء موقع ويب الذي يدعم البحث باتباع الخطوات التالية:

  • إنشاء مورد بحث
  • إنشاء فهرس جديد
  • استيراد البيانات باستخدام .NET باستخدام نموذج البرنامج النصي وAzure SDK Azure.Search.Documents.

إنشاء مورد Azure الذكاء الاصطناعي Search

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

يجب أن يكون لديك Azure CLI أو Azure PowerShell مثبتا على جهازك. إذا لم تكن مسؤولا محليا على جهازك، فاختر Azure PowerShell واستخدم المعلمة Scope للتشغيل كمستخدم حالي.

إشعار

لا تتطلب هذه المهمة ملحقات Visual Studio Code ل Azure CLI وAzure PowerShell. يتعرف Visual Studio Code على أدوات سطر الأوامر دون الملحقات.

  1. في Visual Studio Code، ضمن Terminal، حدد New Terminal.

  2. الاتصال إلى Azure:

    az login
    
  3. قبل إنشاء خدمة بحث جديدة، قم بإدراج الخدمات الموجودة لاشتراكك:

    az resource list --resource-type Microsoft.Search/searchServices --output table
    

    إذا كانت لديك خدمة تريد استخدامها، فلاحظ الاسم، ثم انتقل إلى القسم التالي.

  4. إنشاء خدمة بحث جديدة. استخدم الأمر التالي كقالب، واستبدال القيم الصالحة لمجموعة الموارد واسم الخدمة والطبقة والمنطقة والأقسام والنسخ المتماثلة. تستخدم العبارة التالية مجموعة الموارد "cognitive-search-demo-rg" التي تم إنشاؤها في خطوة سابقة وتحدد المستوى "المجاني". إذا كان اشتراك Azure الخاص بك يحتوي بالفعل على خدمة بحث مجانية، فحدد مستوى قابلا للفوترة مثل "أساسي" بدلا من ذلك.

    az search service create --name my-cog-search-demo-svc --resource-group cognitive-search-demo-rg --sku free --partition-count 1 --replica-count 1
    
  5. احصل على مفتاح استعلام يمنح حق الوصول للقراءة إلى خدمة بحث. يتم تزويد خدمة البحث بمفاتيح مسؤول ومفتاح استعلام واحد. استبدل الأسماء الصالحة لمجموعة الموارد وخدمة البحث. انسخ مفتاح الاستعلام إلى المفكرة بحيث يمكنك لصقه في التعليمات البرمجية للعميل في خطوة لاحقة:

    az search query-key list --resource-group cognitive-search-demo-rg --service-name my-cog-search-demo-svc
    
  6. الحصول على مفتاح واجهة برمجة تطبيقات مسؤول خدمة البحث. يوفر مفتاح API المسؤول حق الوصول للكتابة إلى خدمة البحث. انسخ أحد مفاتيح المسؤول المفكرة بحيث يمكنك استخدامه في خطوة الاستيراد المجمع التي تنشئ فهرسا وتحمله:

    az search admin-key show --resource-group cognitive-search-demo-rg --service-name my-cog-search-demo-svc
    

يستخدم البرنامج النصي Azure SDK ل Azure الذكاء الاصطناعي Search:

  1. في Visual Studio Code، افتح الملف Program.csفي الدليل الفرعيsearch-website-functions-v4/bulk-insert، واستبدل المتغيرات التالية بقيمك للمصادقة باستخدام Azure Search SDK:

    • YOUR-SEARCH-RESOURCE-NAME
    • مفتاح البحث -المسؤول
    
    using Azure;
    using Azure.Search.Documents;
    using Azure.Search.Documents.Indexes;
    using Azure.Search.Documents.Indexes.Models;
    using AzureSearch.BulkInsert;
    using ServiceStack;
    
    const string BOOKS_URL = "https://raw.githubusercontent.com/Azure-Samples/azure-search-sample-data/main/good-books/books.csv";
    const string SEARCH_ENDPOINT = "https://YOUR-SEARCH-RESOURCE-NAME.search.windows.net";
    const string SEARCH_KEY = "YOUR-SEARCH-ADMIN-KEY";
    const string SEARCH_INDEX_NAME = "good-books";
    
    Uri searchEndpointUri = new(SEARCH_ENDPOINT);
    
    SearchClient client = new(
        searchEndpointUri,
        SEARCH_INDEX_NAME,
        new AzureKeyCredential(SEARCH_KEY));
    
    SearchIndexClient clientIndex = new(
        searchEndpointUri,
        new AzureKeyCredential(SEARCH_KEY));
    
    await CreateIndexAsync(clientIndex);
    await BulkInsertAsync(client);
    
    static async Task CreateIndexAsync(SearchIndexClient clientIndex)
    {
        Console.WriteLine("Creating (or updating) search index");
        SearchIndex index = new BookSearchIndex(SEARCH_INDEX_NAME);
        var result = await clientIndex.CreateOrUpdateIndexAsync(index);
    
        Console.WriteLine(result);
    }
    
    static async Task BulkInsertAsync(SearchClient client)
    {
        Console.WriteLine("Download data file");
        using HttpClient httpClient = new();
    
        var csv = await httpClient.GetStringAsync(BOOKS_URL);
    
        Console.WriteLine("Reading and parsing raw CSV data");
        var books =
            csv.ReplaceFirst("book_id", "id").FromCsv<List<BookModel>>();
    
        Console.WriteLine("Uploading bulk book data");
        _ = await client.UploadDocumentsAsync(books);
    
        Console.WriteLine("Finished bulk inserting book data");
    }
    
  2. افتح محطة طرفية متكاملة في Visual Studio Code للدليل الفرعي لدليل المشروع، search-website-functions-v4/bulk-insert، ثم قم بتشغيل الأمر التالي لتثبيت التبعيات.

    dotnet restore
    
  1. استمر في استخدام المحطة الطرفية المتكاملة في Visual Studio للدليل الفرعي لدليل المشروع، search-website-functions-v4/bulk-insertلتشغيل الأمر bash التالي لتشغيل البرنامج النصيProgram.cs:

    dotnet run
    
  2. في أثناء تشغيل التعليمات البرمجية، تعرض وحدة التحكم التقدم.

  3. عند اكتمال التحميل، فإن آخر بيان مطبوع على وحدة التحكم هو "الانتهاء من إدراج بيانات الكتاب بالجملة".

مراجعة فهرس البحث الجديد

بمجرد اكتمال التحميل، يصبح فهرس البحث جاهزاً للاستخدام. راجع الفهرس الجديد في مدخل Microsoft Azure.

  1. في مدخل Microsoft Azure، ابحث عن خدمة البحث التي أنشأتها في الخطوة السابقة.

  2. على اليسار، حدد فهارس، ثم حدد فهرس الكتب الجيدة.

    لقطة شاشة قابلة للتوسيع لمدخل Azure تعرض الفهرس.

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

    لقطة شاشة قابلة للتوسيع لمدخل Azure تعرض نتائج البحث

التراجع عن تغييرات ملف الاستيراد المجمعة

استخدم الأمر git التالي في الوحدة الطرفية المتكاملة ل Visual Studio Code في bulk-insert الدليل، للعودة إلى الحالة السابقة للتغييرات. ليست هناك حاجة إليها لمواصلة البرنامج التعليمي ويجب عليك عدم حفظ هذه الأسرار أو دفعها إلى المستودع الخاص بك.

git checkout .

نسخ اسم مورد البحث

لاحظ اسم مورد البحثخاصتك. ستحتاج إلى هذا لتوصيل تطبيق Azure Function بمورد البحث.

تنبيه

على الرغم من أنك قد تميل إلى استخدام مفتاح مسؤول البحث في Azure Function، فإن هذا لا يتبع مبدأ الامتياز الأقل. تستخدم Azure Function مفتاح الاستعلام للتوافق مع الامتياز الأقل.

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

توزيع Static Web App الخاص بك