Paso 2: Crear y cargar el índice de búsqueda
Siga estos pasos para crear el sitio web habilitado para la búsqueda:
- Creación de un nuevo índice
- Carga de datos
El programa usa Azure.Search.Documents en el SDK de Azure para .NET:
Antes de empezar, asegúrese de que tiene espacio en el servicio de búsqueda para un nuevo índice. El límite de niveles gratis es de tres índices. El límite de nivel Básico es 15.
Preparación del script de importación en bloque para Search
En Visual Studio Code, abra el archivo
Program.cs
del subdirectorio,azure-search-static-web-app/bulk-insert
, y reemplace las siguientes variables por sus propios valores para autenticarse con el SDK de Azure Search.- SU-NOMBRE-DE-SERVICIO-DE-BÚSQUEDA (no la dirección URL completa)
- SU-CLAVE-API-DE-ADMINISTRADOR-DE-BÚSQUEDA (consulte Buscar claves de 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"); }
Abra un terminal integrado en Visual Studio Code para el subdirectorio del directorio del proyecto,
azure-search-static-web-app/bulk-insert
.Ejecute el siguiente comando para instalar las dependencias.
dotnet restore
Ejecución del script de importación en bloque para Search
Todavía en el mismo subdirectorio (
azure-search-static-web-app/bulk-insert
), ejecute el programa:dotnet run
A medida que se va ejecutando el código, la consola muestra el progreso. Debería ver la siguiente salida.
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
Revisión del nuevo índice de búsqueda
Una vez que la carga se completa, el índice de búsqueda está preparado para su uso. Examine el índice nuevo en Azure Portal.
Busque el servicio de búsqueda en Azure Portal.
A la izquierda, seleccione Administración de búsqueda > Índices y, a continuación, seleccione el índice de libros correctos.
De forma predeterminada, el índice se abre en la pestaña Explorador de búsqueda. Seleccione Buscar para devolver documentos del índice.
Reversión de cambios de archivos de importación masiva
Use el siguiente comando git en el terminal de Visual Studio Code integrado en el directorio bulk-insert
para revertir los cambios en el archivo Program.cs
. No son necesarios para continuar con el tutorial y no debe guardar ni insertar las claves de API ni el nombre del servicio de búsqueda en el repositorio.
git checkout .