Шаг 2. Создание и загрузка индекса поиска
Продолжайте создавать веб-сайт с поддержкой поиска, выполнив следующие действия.
- Создание нового индекса
- Загрузка данных
Программа использует Azure.Search.Documents в пакете SDK Azure для .NET:
Перед началом работы убедитесь, что у вас есть место в службе поиска для нового индекса. Ограничение уровня "Бесплатный" составляет три индекса. Ограничение уровня "Базовый" равно 15.
Подготовка скрипта массового импорта для Поиска
В Visual Studio Code откройте
Program.cs
файл в подкаталоге,azure-search-static-web-app/bulk-insert
замените следующие переменные собственными значениями для проверки подлинности с помощью пакета SDK для поиска Azure.- YOUR-SEARCH-SERVICE-NAME (не полный URL-адрес)
- YOUR-SEARCH-ADMIN-API-KEY (см . раздел "Поиск ключей API")
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"); }
Откройте интегрированный терминал в Visual Studio Code для подкаталога
azure-search-static-web-app/bulk-insert
каталога проекта.Выполните следующую команду, чтобы установить зависимости.
dotnet restore
Запуск скрипта массового импорта для службы "Поиск"
Все еще в том же подкаталоге (
azure-search-static-web-app/bulk-insert
), запустите программу:dotnet run
По мере выполнения кода в консоли будет отображатся ход выполнения. Вы должны увидеть следующие выходные данные.
Creating (or updating) search index Status: 201, Value: Azure.Search.Documents.Indexes.Models.SearchIndex Download data file Reading and parsing raw CSV data Uploading bulk book data Finished bulk inserting book data
Просмотр нового индекса поиска
Индекс поиска можно использовать сразу после завершения отправки. Просмотрите новый индекс в портал Azure.
В портал Azure найдите службу поиска.
Слева выберите индексы управления > поиском, а затем выберите индекс хороших книг.
По умолчанию индекс открывается на вкладке обозревателя поиска. Выберите "Поиск ", чтобы вернуть документы из индекса.
Откат изменений файла с массовым импортом
Используйте следующую команду Git в интегрированном терминале Visual Studio Code в каталоге bulk-insert
, чтобы откатить изменения в Program.cs
файле. Они не нужны, чтобы продолжить учебник, и вы не должны сохранять или отправлять ключи API или имя службы поиска в репозиторий.
git checkout .