호랭이 분석가

[Azure] Cognitive Search Index Field 종류 (Python) 본문

Azure/Cognitive Search

[Azure] Cognitive Search Index Field 종류 (Python)

데이터호랑이 2023. 7. 4. 00:28
반응형

Python을 이용하여 Azure Cognitive Search의 Indexes를 생성할 때,

사용할 수 있는 Field Class는 무엇이 있는지 알아보겠습니다.

 

 

azure.search.documents.indexes.SearchIndexClient class

A client to interact with Azure search service index.

learn.microsoft.com

 

Azure Documents에서 제공하는 "hotels"란 이름의 index를 지정된 fields의 값으로 생성하는 예제입니다.

name = "hotels"

fields = [
   SimpleField(name="hotelId", type=SearchFieldDataType.String, key=True),
   SimpleField(name="baseRate", type=SearchFieldDataType.Double),
   SearchableField(name="description", type=SearchFieldDataType.String, collection=True),
   ComplexField(name="address", fields=[
       SimpleField(name="streetAddress", type=SearchFieldDataType.String),
       SimpleField(name="city", type=SearchFieldDataType.String),
   ], collection=True)
]

 

1. SimpleField

SimpleField는 인덱스의 간단한 필드를 정의하는 클래스입니다.

이 클래스는 필드 이름, 필드 형식, 필터링 및 정렬에 사용되는지 여부를 지정할 수 있고, 검색에는 사용되지 않습니다.

 

# pip install azure-search-documents

from azure.search.documents.indexes import SimpleField

SimpleField(name="hotelId", 
            type=SearchFieldDataType.String, 
            key=True, 
            filterable=True, 
            sortable=True)

 

2. SearhableField

SearchableField는 인덱스의 검색 가능한 필드를 정의하는 클래스입니다.

이 클래스는 필드 이름, 데이터 형식, 검색 가능 여부, 필터링 및 정렬에 사용 여부, 분석기, 동의어 맵 등의 설정을 지정할 수 있습니다.

 

from azure.search.documents.indexes.models import SearchableField

SearchableField(name="description",
                type=SearchFieldDataType.String, 
                searchable=Ture,
                filterable=True,
                sortable=True,
                analyzer_name="standard.lucene",
                collection=True
                )

 

3. ComplexField

ComplexField는 인덱스의 복합 필드를 정의하는 클래스입니다.

이 클래스는 필드 이름과 하위 필드 목록을 지정할 수 있습니다.

복합 필드는 중첩된 데이터 구조를 나타내는 데 사용합니다.

from azure.search.documents.indexes.models import ComplexField, SimpleField
  
ComplexField(name="address", fields=[
       SimpleField(name="streetAddress", type=SearchFieldDataType.String),
       SimpleField(name="city", type=SearchFieldDataType.String),
   ], 
collection=True)

 

4. SearchFieldDataType

SearchFieldDataType 클래스는 필드의 데이터 형식을 나타내는 열거형 클래스입니다.

가능한 값으로는

  • String
  • Int32
  • Int64
  • Double
  • Boolean
  • DateTimeOffset
  • GeographyPoint
  • Collection

등이 있습니다.

 

 

Comments