Azure AI 검색에서 데이터 가져오기
Azure AI 검색에서 쿼리는 검색 인덱스에 로드되는 사용자 소유 콘텐츠에 대해 실행됩니다. 이 문서에서는 인덱스를 채우기 위한 두 가지 기본 워크플로, 즉 프로그래밍 방식으로 데이터를 인덱스로 푸시하거나 검색 인덱서를 사용하여 데이터를 끌어오는 방법에 대해 설명합니다.
두 방법 모두 외부 데이터 원본에서 문서를 로드합니다. 빈 인덱스를 만들 수 있지만 콘텐츠를 추가할 때까지 쿼리할 수 없습니다.
참고 항목
AI 보강 또는 통합 벡터화가 솔루션 요구 사항인 경우 풀 모델(인덱서)을 사용하여 인덱스를 로드해야 합니다. 기술 세트는 인덱서에 연결되어 있으며 독립적으로 실행되지 않습니다.
인덱스에 데이터 푸시
푸시 모델은 API를 사용하여 기존 검색 인덱스로 문서를 업로드하는 방법입니다. 개별적으로 업로드하거나 일괄 처리당 최대 1,000개 또는 일괄 처리당 16MB까지 일괄 처리로 문서를 업로드할 수 있습니다.
주요 이점은 다음과 같습니다.
데이터 원본 형식에는 제한이 없습니다. 페이로드는 인덱스 스키마에 매핑되는 JSON 문서로 구성되어야 하지만 데이터는 어디에서나 원본이 될 수 있습니다.
실행 빈도에는 제한이 없습니다. 원하는 만큼 자주 변경 내용을 인덱스에 푸시할 수 있습니다. 짧은 대기 시간 요구 사항(예: 인덱스가 제품 재고 변동과 동기화되어야 하는 경우)이 있는 애플리케이션의 경우 푸시 모델이 유일한 옵션입니다.
연결 및 문서의 보안 검색은 완전히 제어할 수 있습니다. 반면, 인덱서 연결은 Azure AI 검색에 제공된 보안 기능을 사용하여 인증됩니다.
Azure AI 검색 인덱스로 데이터를 푸시하는 방법
다음 API를 사용하여 하나 또는 여러 문서를 인덱스로 로드합니다.
- 문서 인덱싱(REST API)
- IndexDocumentsAsync(.NET용 Azure SDK) 또는 SearchIndexingBufferedSender
- IndexDocumentsBatch(Python용 Azure SDK) 또는 SearchIndexingBufferedSender
- IndexDocumentsBatch(Java용 Azure SDK) 또는 SearchIndexingBufferedSender
- IndexDocumentsBatch(JavaScript용 Azure SDK) 또는 SearchIndexingBufferedSender
Azure Portal을 통해 데이터를 푸시하는 것은 지원되지 않습니다.
푸시 API에 대한 소개는 다음을 참조하세요.
- 빠른 시작: Azure SDK를 사용하여 전체 텍스트 검색
- C# 자습서 - 푸시 API를 사용하여 인덱싱 최적화
- REST 빠른 시작: PowerShell을 사용하여 Azure AI 검색 인덱스 만들기
인덱싱 작업: upload, merge, mergeOrUpload, delete
문서를 기존 문서 콘텐츠와 병합해서 완전히 업로드할지 또는 삭제할지를 지정하여 문서별로 인덱싱 작업 유형을 제어할 수 있습니다.
REST API 또는 Azure SDK를 사용하든 관계없이 데이터 가져오기에 대해 다음 문서 작업이 지원됩니다.
업로드(문서가 새 문서인 경우 삽입하고 기존 문서인 경우 업데이트되거나 교체되는 "upsert"와 유사함). 인덱스에 필요한 값이 문서에 없으면 문서 필드의 값이 null로 설정됩니다.
병합은 이미 존재하는 문서를 업데이트하고 찾을 수 없는 문서는 실패합니다. 병합은 기존 값을 대체합니다. 이러한 이유로 형식
Collection(Edm.String)
의 필드와 같이 여러 값이 포함된 컬렉션 필드를 확인해야 합니다. 예를 들어 값이tags
필드가["budget"]
값으로 시작하고["economy", "pool"]
과 병합을 실행하면tags
필드의 최종 값은["economy", "pool"]
입니다.["budget", "economy", "pool"]
이 아닙니다.mergeOrUpload는 문서가 있는 경우 병합처럼 동작하고 문서가 새 문서인 경우 업로드합니다.
delete는 인덱스에서 전체 문서를 제거합니다. 개별 필드를 제거하려는 경우에는 대신 merge를 사용하여 해당 필드를 null로 설정합니다.
인덱스로 데이터 끌어오기
끌어오기 모델은 지원되는 데이터 원본에 연결하는 인덱서를 사용하여 데이터를 인덱스로 자동으로 업로드합니다. Microsoft의 인덱서는 다음 플랫폼에 사용할 수 있습니다.
- Azure Blob Storage
- Azure Table Storage
- Azure Data Lake Storage Gen2
- Azure Files(미리 보기)
- Azure Cosmos DB
- Azure VM의 Azure SQL Database, SQL Managed Instance 및 SQL Server
- OneLake 파일 및 바로 가기
- SharePoint Online(미리 보기)
Microsoft 파트너가 개발하고 유지 관리하는 타사 커넥터를 사용할 수 있습니다. 자세한 내용 및 링크는 데이터 원본 갤러리를 참조하세요.
인덱서는 인덱스를 데이터 원본(일반적으로 테이블, 뷰 또는 이와 동등한 구조)에 연결하고 원본 필드를 인덱스에 해당하는 필드에 매핑합니다. 실행 중에 행 집합은 자동으로 JSON으로 변환되고 지정한 인덱스에 로드됩니다. 모든 인덱서는 데이터를 새로 고치는 빈도를 지정할 수 있도록 일정을 지원합니다. 대부분의 인덱서는 데이터 원본에서 지원하는 경우 변경 내용 추적을 제공합니다. 새 문서를 인식하는 것 외에도 기존 문서에서 변경 사항 및 삭제를 추적하므로 인덱서는 인덱스에서 데이터를 적극적으로 관리해야 할 필요를 없애줍니다.
Azure AI 검색 인덱스로 데이터를 끌어오는 방법
인덱서 기반 인덱싱에 다음 도구 및 API를 사용합니다.
- 데이터 가져오기 마법사 또는 데이터 가져오기 및 벡터화 마법사
- REST API: 인덱서 만들기(REST), 데이터 원본 만들기(REST), 인덱스 만들기(REST)
- .NET용 Azure SDK: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Python용 Azure SDK: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- Java용 Azure SDK: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
- JavaScript용 Azure SDK: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex,
인덱서 기능은 [Azure Portal], REST API 및 .NET SDK에 공개되어 있습니다.
Azure Portal을 사용하는 장점은 Azure AI Search가 일반적으로 원본 데이터 세트의 메타데이터를 읽어 기본 인덱스 스키마를 생성할 수 있다는 것입니다.
검색 탐색기를 사용하여 데이터 가져오기 확인
문서 업로드에 대한 예비 검사를 수행하는 빠른 방법은 Azure Portal에서 검색 탐색기를 사용하는 것입니다.
탐색기를 사용하면 코드를 작성할 필요 없이 인덱스를 쿼리할 수 있습니다. 검색 환경은 간단한 구문 및 기본 searchMode 쿼리 매개 변수를 기반으로 합니다. 결과는 JSON으로 반환되므로 전체 문서를 검사할 수 있습니다.
다음은 JSON 보기의 검색 탐색기에서 실행할 수 있는 쿼리 예제입니다. "HotelId"는 hotels-sample-index의 문서 키입니다. 필터는 특정 문서의 문서 ID를 제공합니다.
{
"search": "*",
"filter": "HotelId eq '50'"
}
REST를 사용하는 경우 이 조회 쿼리는 동일한 목적을 달성합니다.