2단계 - 검색 인덱스 만들기 및 로드
다음 단계에 따라 검색 지원 웹 사이트를 계속 빌드합니다.
- 새 인덱스 만들기
- 데이터 로드
프로그램에서는 .NET용 Azure SDK의 Azure.Search.Documents를 사용합니다.
시작하기 전에 검색 서비스에 새 인덱스를 위한 공간이 있는지 확인합니다. 무료 계층 제한은 인덱스 3개입니다. 기본 계층 제한은 15개입니다
검색을 위해 대량 가져오기 스크립트 준비
Visual Studio Code에서
azure-search-static-web-app/bulk-insert
하위 디렉터리의Program.cs
파일을 열고, Azure Search SDK를 사용하여 인증하기 위해 다음 변수를 사용자 고유의 값으로 바꿉니다.- 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에서 프로젝트 디렉터리의 하위 디렉터리인
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 Portal에서 새 인덱스를 검토합니다.
Azure Portal에서 검색 서비스를 찾습니다.
왼쪽에서 검색 관리 > 인덱스를 선택한 다음, 좋은 책 인덱스를 선택합니다.
기본적으로 인덱스가 검색 탐색기 탭에서 열립니다. 검색을 선택하여 인덱스에서 문서를 반환합니다.
대량 가져오기 파일 변경 내용 롤백
bulk-insert
디렉터리에 있는 Visual Studio Code 통합 터미널에서 다음 git 명령을 사용하여 Program.cs
파일에 대한 변경 내용을 롤백합니다. 이 자습서를 계속 진행하는 데 필요하지는 않으므로 API 키 또는 검색 서비스 이름을 리포지토리로 저장하거나 푸시하지 않는 것이 좋습니다.
git checkout .