Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 도커
- 프롬프트 튜닝
- 파라미터 힌트
- GPT
- 조건문
- Redshift
- 토끼
- 반복문
- AI 동화
- Azure
- 인컨텍스트 러닝
- 대스크
- 퓨샷
- Cognitive Service
- 모험
- Ai
- FOR
- Cognitive Search
- Docker
- UDF
- 컨텍스트 매니져
- 동화책
- 검색
- 인자 힌트
- Python
- 아기동화
- 제로샷
- Compute
- dask
- 파이썬
Archives
- Today
- Total
호랭이 분석가
[Azure] Cognitive Search Index 생성, 삭제, 업로드 (Python) 본문
반응형
Python을 이용하여 Azure Cognitive Search의 Indexes를 생성할 때,
사용할 수 있는 Class는 무엇이 있는지 알아보겠습니다.
0. 기본 준비
우선 Azure API를 이용하기 위한 Cognitive Search 생성 시 사용하면 서비스명과
발급받은 API Key를 준비하고 Client를 생성해야 합니다.
# pip install azure-search-documents
from azure.core.credentials import AzureKeyCredential
from azrue.search.documents.indexes import SearchIndexClient
search_service_name = 'your-service-name'
key = 'your-api-key'
endpoint = f'https://{serach_service_name}.search.windows.net/'
# 서비스 클라이언트를 생성
client = SearchIndexClient(endpoint, AzureKeyCredential(key))
1. 인덱스 생성
인덱스를 생성할 때, 필드 타입과 데이터의 타입을 선택해야 하니 윗글을 참조하시면 됩니다.
아래의 코드로 샘플을 생성해 보겠습니다.
from azure.search.documents.indexes.models import (
ComplexField,
CorsOptions,
SearchIndex,
ScoringProfile,
SearchFieldDataType,
SimpleField,
SearchableField
)
# 생성할 인덱스명 설정
index_name = 'test'
fields = [
SimpleField(name="testId", type=SearchFieldDataType.String, key=True),
SimpleField(name="testRate", type=SearchFieldDataType.Double),
SearchableField(name="description", type=SearchFieldDataType.String)
]
cors_options = CorsOptions(allowed_origins=["*"], max_age_in_seconds=60)
scoring_profiles = []
index = SearchIndex(
name=index_name,
fields=fields,
scoring_profiles=scoring_profiles,
cors_options=cors_options)
result = client.create_index(index)
index_name을 만들 때 주의사항으로는 대문자와 특수문자는 사용 불가합니다 (ex : test_index, TestIndex)
2. 인덱스 삭제
삭제는 간단합니다. delete_index() 함수를 사용하여 삭제 가능합니다.
index = SearchIndex(
name=name,
fields=fields,
scoring_profiles=scoring_profiles,
cors_options=cors_options)
result = client.delete_index(index)
3. 데이터 업로드
우선 CSV(파일) 형태의 파일 데이터를 인덱스에 업로드하는 방법을 확인해 보겠습니다.
import pandas as pd
from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient
# read CSV
data = pd.read_csv('your_file_name')
# 인덱스를 생성시 지정한 필드의 데이터타입으로 변환
data['testId'] = data['testId'].astype(str)
data['testRate'] = data['testRate'].astype(float)
data['description'] = data['description'].astype(str)
# 딕셔너리 변환
document = data.to_dict('records')
# 업로드
search_client = SearchClient(endpoint, index_name, AzureKeyCredential(key))
result = search_client.upload_documents(documents=document)
데이터프레임을 to_dict('records')를 통해 변환 시, List(Dict) 형태로 반환되므로
result에는 바로 사용하였습니다만,
upload_documents(documents=[dict])의 형태로 입력되어야 합니다.
'Azure > Cognitive Search' 카테고리의 다른 글
[Azure] Cognitive Search Vector Search 벡터 유사도 검색(Python) (0) | 2023.07.11 |
---|---|
[Azure] Cognitive Search 검색 스코어링 프로파일 설정 (Python) (0) | 2023.07.09 |
[Azure] Cognitive Search로 자동 완성 검색 구현하기 Suggest API(Python) (0) | 2023.07.07 |
[Azure] Cognitive Search로 검색 및 필터 설정 (Python) (0) | 2023.07.05 |
[Azure] Cognitive Search Index Field 종류 (Python) (0) | 2023.07.04 |
Comments