다음을 통해 공유


delimitedText 구문 분석 모드를 사용하여 CSV Blob 및 파일 인덱싱

적용 대상: Blob 인덱서, 파일 인덱서

Azure AI 검색에서 Azure Blob Storage 및 Azure Files용 인덱서는 CSV의 각 줄을 별도의 검색 문서로 처리하는 CSV 파일에 대한 delimitedText 구문 분석 모드를 지원합니다. 예를 들어, 쉼표로 구분된 다음 텍스트가 주어지면 delimitedText 구문 분석 모드에서 검색 인덱스에 두 개의 문서를 생성합니다.

id, datePublished, tags
1, 2016-01-12, "azure-search,azure,cloud"
2, 2016-07-07, "cloud,mobile"

CSV 파일 내의 필드에 구분 기호가 포함되어 있으면 따옴표로 묶어야 합니다. 필드에 따옴표가 포함된 경우 큰따옴표("")를 사용하여 이스케이프해야 합니다.

id, datePublished, tags
1, 2020-01-05, "tags,with,""quoted text"""

delimitedText 구문 분석 모드가 없으면 CSV 파일의 전체 내용이 하나의 검색 문서로 처리됩니다.

단일 Blob에서 여러 검색 문서를 만들 때마다 여러 검색 문서를 생성하기 위한 Blob 인덱싱을 검토하여 문서 키 할당이 작동하는 방식을 이해합니다. Blob 인덱서는 각각의 새 문서를 고유하게 정의하는 값을 찾거나 생성할 수 있습니다. 특히, Blob이 더 작은 부분으로 구문 분석될 때 생성되는 일시적인 AzureSearch_DocumentKey를 생성할 수 있습니다. 그러면 값이 인덱스에서 검색 문서의 키로 사용됩니다.

CSV 인덱싱 설정

CSV Blob을 인덱싱하려면 인덱서 만들기 요청에서 delimitedText 구문 분석 모드로 인덱서 정의를 만들거나 업데이트합니다.

UTF-8 인코딩만 지원됩니다.

{
  "name" : "my-csv-indexer",
  ... other indexer properties
  "parameters" : { "configuration" : { "parsingMode" : "delimitedText", "firstLineContainsHeaders" : true } }
}

firstLineContainsHeaders는 각 Blob의 첫 번째(비어 있지 않은) 줄이 헤더를 포함하는 것을 나타냅니다. Blob이 초기 헤더 줄을 포함하지 않는 경우 헤더는 인덱서 구성에서 지정되어야 합니다.

"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } } 

delimitedTextDelimiter 구성 설정을 사용하여 구분 기호 문자를 사용자 지정할 수 있습니다. 예시:

"parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextDelimiter" : "|" } }

참고 항목

구분된 텍스트 구문 분석 모드에서 Azure AI Search는 모든 Blob이 CSV라고 가정합니다. 동일한 데이터 원본에 CSV 및 비 CSV Blob이 혼합되어 있는 경우 파일 확장명 필터를 사용하여 각 인덱서 실행 시 가져올 파일을 제어하는 것이 좋습니다.

요청 예제

다음은 이를 모두 포함한 전체 페이로드 예제입니다.

데이터 원본:

POST https://[service name].search.windows.net/datasources?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
    "name" : "my-blob-datasource",
    "type" : "azureblob",
    "credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" },
    "container" : { "name" : "my-container", "query" : "<optional, my-folder>" }
}   

인덱서:

POST https://[service name].search.windows.net/indexers?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
  "name" : "my-csv-indexer",
  "dataSourceName" : "my-blob-datasource",
  "targetIndexName" : "my-target-index",
  "parameters" : { "configuration" : { "parsingMode" : "delimitedText", "delimitedTextHeaders" : "id,datePublished,tags" } }
}

참고 항목