Share via


Azure Blob Storage 콘텐츠 검색

Azure Blob Storage에 저장된 다양한 콘텐츠 형식에서 검색하는 것은 해결하기 어려운 문제일 수 있지만 Azure AI 검색은 콘텐츠 계층에서 심층 통합을 제공하여 텍스트 정보를 추출 및 유추한 다음, 검색 인덱스에서 쿼리할 수 있습니다.

이 문서에서는 Blob에서 콘텐츠 및 메타데이터를 추출하여 Azure AI 검색의 검색 인덱스에 보내는 기본 워크플로를 검토합니다. 전체 텍스트 검색을 사용하여 결과 인덱스를 쿼리할 수 있습니다. 선택적으로, 검색 시나리오가 아닌 경우 처리된 Blob 콘텐츠를 지식 저장소로 보낼 수 있습니다.

참고 항목

워크플로 및 컴퍼지션을 이미 잘 알고 있나요? 다음 단계는 Blob 인덱서 구성입니다.

Blob 데이터에 대한 전체 텍스트 검색 추가의 의미

Azure AI 검색은 클라우드에서 호스팅되는 비공개 검색 가능 콘텐츠를 포함하는 사용자 정의 인덱스에 대해 인덱싱 및 쿼리 워크로드를 지원하는 독립 실행형 검색 서비스입니다. 사용자가 검색 쿼리에서 기대하는 속도로 결과를 반환하는 성능을 위해서는 검색 가능한 콘텐츠를 클라우드의 쿼리 엔진과 함께 공동 배치해야 합니다.

Azure AI 검색은 인덱싱 계층에서 Azure Blob Storage와 통합하여 반전된 인덱스에 인덱싱된 검색 문서와 자유 형식 텍스트 쿼리 및 필터 식을 지원하는 기타 쿼리 구조체로 Blob 콘텐츠를 가져옵니다. Blob 콘텐츠는 검색 인덱스로 인덱싱되므로 Azure AI 검색의 전체 쿼리 기능을 사용하여 BLOB 콘텐츠에서 정보를 찾을 수 있습니다.

입력은 Azure Blob Storage의 단일 컨테이너에 있는 Blob입니다. Blob은 거의 모든 종류의 텍스트 데이터가 될 수 있습니다. Blob에 이미지가 포함된 경우 AI 보강을 추가하여 이미지에서 텍스트 및 기능을 만들고 추출할 수 있습니다.

출력은 항상 클라이언트 응용 프로그램에서 빠른 텍스트 검색, 검색 및 탐색에 사용되는 Azure AI 검색 인덱스입니다. 입력과 출력 사이에는 인덱싱 파이프라인 아키텍처 자체가 있습니다. 파이프라인은 이 문서에서 자세히 설명할 ‘인덱서’ 기능을 기반으로 합니다.

인덱스를 만들고 채운 후에는 Blob 컨테이너와 독립적으로 존재하지만 인덱싱 작업을 다시 실행하여 변경된 문서를 기준으로 인덱스를 새로 고칠 수 있습니다. 개별 Blob에 대한 타임스탬프 정보는 변경 검색에 사용됩니다. 예약된 실행 또는 요청 시 인덱싱을 새로 고침 메커니즘으로 선택할 수 있습니다.

Blob 검색 솔루션에 사용되는 리소스

Azure AI 검색, Azure Blob Storage 및 클라이언트가 필요합니다. Azure AI 검색은 일반적으로 애플리케이션 코드가 쿼리 API 요청을 발급하고 응답을 처리하는 솔루션의 여러 구성 요소 중 하나입니다. 인덱싱을 처리하기 위해 애플리케이션 코드를 작성할 수도 있지만 개념 증명 테스트 및 즉석 작업의 경우 Azure Portal을 검색 클라이언트로 사용하는 것이 일반적입니다.

Blob Storage 내에서 원본 콘텐츠를 제공하는 컨테이너가 필요합니다. 파일 포함 및 제외 조건을 설정하고 Azure AI 검색에서 인덱싱되는 Blob 부분을 지정할 수 있습니다.

스토리지 계정 포털 페이지에서 직접 시작할 수 있습니다.

  1. 데이터 관리 아래의 왼쪽 탐색 페이지에서 Azure AI 검색을 선택하여 검색 서비스를 선택하거나 만듭니다.

  2. 마법사의 단계에 따라 Blob에서 검색 가능한 콘텐츠를 추출하고 선택적으로 만듭니다. 워크플로는 데이터 가져오기 마법사입니다. 워크플로는 Azure AI 검색 서비스에 인덱서, 데이터 원본, 인덱스 및 옵션 기술 세트를 만듭니다.

    Azure Storage 포털 페이지의 Azure AI 검색 마법사를 보여 주는 스크린샷.

  3. 콘텐츠를 쿼리하려면 쿼리 포털 페이지에서 쿼리 탐색기를 사용합니다.

마법사는 시작하기에 가장 좋은 곳이지만 직접 Blob 인덱서를 구성할 때 보다 유연한 옵션을 발견할 수 있습니다. REST 클라이언트를 사용할 수 있습니다. 자습서: 반구조화된 데이터(JSON BLOB) 인덱싱 및 검색은 REST API를 호출하는 단계를 안내합니다.

Blob이 인덱싱되는 방법

기본적으로 대부분의 Blob은 단일 텍스트 청크로 인덱싱되는 JSON 또는 CSV와 같이 구조화된 콘텐츠가 있는 Blob을 포함하여 인덱스에서 단일 검색 문서로 인덱싱됩니다. 그러나 내부 구조(구분 기호)가 있는 JSON 또는 CSV 문서의 경우 구문 분석 모드를 할당하여 각 라인 또는 요소에 대한 개별 검색 문서를 생성할 수 있습니다.

복합 또는 포함된 문서(예: ZIP 보관 파일, 첨부 파일이 있는 Outlook 메일이 포함된 Word 문서 또는 첨부 파일이 포함된 .MSG 파일)도 단일 문서로 인덱싱됩니다. 예를 들어 .MSG 첨부 파일에서 추출한 모든 이미지는 normalized_images 필드에 반환됩니다. 이미지가 있는 경우 AI 보강을 추가하여 해당 콘텐츠에서 더 많은 검색 유틸리티를 가져올 수 있습니다.

문서의 텍스트 콘텐츠는 “content”라는 문자열 필드로 추출됩니다. 표준 및 사용자 정의 메타데이터를 추출할 수도 있습니다.

참고 항목

Azure AI 검색은 가격 책정 계층에 따라 추출하는 텍스트 양에 인덱서 제한을 부과합니다. 문서가 잘린 경우 인덱서 상태 응답에 경고가 표시됩니다.

콘텐츠 추출에 Blob 인덱서 사용

인덱서는 데이터를 샘플링하고, 데이터 및 메타데이터를 읽고 검색하며, 후속 가져오기를 위해 네이티브 형식의 데이터를 JSON 문서로 직렬화하기 위한 내부 논리를 포함하는 Azure AI 검색의 데이터 원본 인식 하위 서비스입니다.

Azure Storage의 Blob은 Blob 인덱서를 사용하여 인덱싱됩니다. Azure Storage의 Azure AI 검색 명령, 데이터 가져오기 마법사, REST API 또는 .NET SDK를 사용하여 이 인덱서를 호출할 수 있습니다. 코드에서는 형식을 설정하고 Blob 컨테이너와 함께 Azure Storage 계정을 포함하는 연결 정보를 제공하여 이 인덱서를 사용합니다. 만든 후에 매개 변수로 전달할 수 있는 가상 디렉터리를 만들거나 파일 형식 확장에서 필터링하여 Blob의 하위 집합을 지정할 수 있습니다.

인덱서는 “문서 크랙”을 발생시켜 콘텐츠를 검사하는 Blob을 엽니다. 이 작업은 데이터 원본에 연결한 후 파이프라인에서 첫 번째 단계입니다. Blob 데이터의 경우에는 PDF, Office 문서 및 기타 콘텐츠 형식이 검색되는 단계입니다. 텍스트 추출을 사용한 문서 크래킹은 무료로 제공됩니다. Blob에 이미지 콘텐츠가 포함되어 있는 경우 AI 보강 추가를 하지 않으면 이미지가 무시됩니다. 표준 인덱싱은 텍스트 콘텐츠에만 적용됩니다.

Azure Blob 인덱서는 구성 매개 변수와 함께 제공되며 기본 데이터가 충분한 정보를 제공하는 경우 변경 내용 추적을 지원합니다. Azure Blob Storage의 데이터 인덱싱에서 핵심 기능에 대해 자세히 알아볼 수 있습니다.

지원되는 액세스 계층

Blob Storage 액세스 계층에는 핫, 쿨, 콜드 및 보관이 포함됩니다. 인덱서는 핫, 쿨, 콜드 액세스 계층에서 Blob를 검색할 수 있습니다.

지원하는 콘텐츠 유형

컨테이너에 대해 Blob 인덱서를 실행하면 단일 쿼리를 사용하여 다음과 같은 콘텐츠 형식에서 텍스트 및 메타데이터를 추출할 수 있습니다.

  • CSV(CSV Blob 인덱싱 참조)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON(JSON BLOB 인덱싱 참조)
  • KML(지리적 표현을 위한 XML)
  • Microsoft Office 형식: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG(Outlook 메일), XML(2003 및 2006 WORD XML 모두)
  • 오픈 문서 형식: ODT, ODS, ODP
  • PDF
  • 일반 텍스트 파일(일반 텍스트 인덱싱도 참조)
  • RTF
  • XML
  • ZIP

인덱싱할 Blob 제어

Blob의 파일 형식에 따라 인덱싱할 Blob 및 건너뛸 Blob을 제어하거나, Blob 자체에서 해당 속성을 설정하여 인덱서에서 이러한 과정을 건너뛰기 할 수 있습니다.

"indexedFileNameExtensions"을 쉼표로 구분된 파일 확장자 목록(선행 점이 있음)으로 설정하여 특정 파일 확장자를 포함합니다. "excludedFileNameExtensions"를 건너뛰어야 하는 확장명으로 설정하여 특정 파일 확장명을 제외합니다. 동일한 확장자가 두 목록에 있으면 인덱싱에서 제외됩니다.

PUT /indexers/[indexer name]?api-version=2023-11-01
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

Blob에 "skip" 메타데이터 추가

인덱서 구성 매개 변수는 컨테이너 또는 폴더의 모든 Blob에 적용됩니다. 어떤 때는 개별 Blob이 인덱싱되는 방식을 제어해야 하는 경우도 있습니다.

다음 메타데이터 속성 및 값을 Blob Storage의 Blob에 추가합니다. 인덱서는 이 속성을 발견할 경우 인덱싱 실행 시 Blob 또는 해당 콘텐츠를 건너뜁니다.

Property name 속성 값 설명
"AzureSearch_Skip" "true" BLOB 인덱서가 BLOB을 완전히 건너뛰도록 지시합니다. 메타데이터와 콘텐츠 추출이 모두 시도되지 않습니다. 특정 BLOB이 반복적으로 실패하고 인덱싱 프로세스가 중단되는 경우에 유용합니다.
"AzureSearch_SkipContent" "true" 이는 에서 특정 Blob으로 범위를 지정한 "dataToExtract" : "allMetadata" 설정과 동일합니다.

Blob 메타데이터 인덱싱

모든 콘텐츠 형식의 Blob을 손쉽게 정렬할 수 있는 일반적인 시나리오는 각 Blob에 대해 사용자 지정 메타데이터와 시스템 속성을 모두 인덱싱하는 것입니다. 이러한 방식으로 검색 서비스의 인덱스에 저장된 문서 형식과 관계없이 모든 Blob을 인덱싱할 수 있습니다. 그런 다음, 새 인덱스를 사용하여 모든 Blob Storage 콘텐츠에서 정렬, 필터링, 패싯을 수행할 수 있습니다.

참고 항목

Blob 인덱스 태그는 Blob Storage 서비스에 의해 기본적으로 인덱싱되고 쿼리를 위해 노출됩니다. Blob의 키/값 특성에 인덱싱 및 필터링 기능이 필요한 경우 메타데이터 대신 Blob 인덱스 태그를 활용해야 합니다.

Blob 인덱스에 대해 자세히 알아보려면 Blob 인덱스를 사용하여 Azure Blob Storage에서 데이터 관리 및 찾기를 참조하세요.

검색 인덱스에서 Blob 콘텐츠 검색

인덱서의 출력은 클라이언트 앱에서 자유 텍스트 및 필터링된 쿼리를 사용하여 대화형 탐색에 사용되는 검색 인덱스입니다. 콘텐츠를 처음 살펴보고 확인하려면 포털에서 검색 탐색기로 시작하여 문서 구조를 검토하는 것이 좋습니다. 검색 탐색기에서 다음을 사용할 수 있습니다.

더 영구적인 솔루션은 클라이언트 애플리케이션에서 쿼리 입력을 수집하고 검색 결과로 응답을 제공하는 것입니다. 다음 C# 자습서에서는 검색 애플리케이션을 빌드하는 방법을 설명합니다. ASP.NET Core(MVC) 애플리케이션에 검색 추가

다음 단계