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
- Docker
- Compute
- 도커
- 프롬프트 튜닝
- 조건문
- 토끼
- 파라미터 힌트
- 제로샷
- FOR
- 검색
- 인자 힌트
- AI 동화
- 인컨텍스트 러닝
- Ai
- Python
- 반복문
- 모험
- 동화책
- Cognitive Service
- 퓨샷
- 아기동화
- dask
- 파이썬
- 컨텍스트 매니져
- 대스크
- Azure
- UDF
- Redshift
- Cognitive Search
Archives
- Today
- Total
호랭이 분석가
[Azure] Cognitive Search 검색 스코어링 프로파일 설정 (Python) 본문
반응형
Azure Cognitive Search로 인덱스를 생성할 때
ScoringProfile을 통해 각 필드별로 가중치를 준다면
검색의 순서를 조절할 수 있습니다.
그럼 인덱스를 생성할 때,
ScoringProfile과 String Type 필드에 사용할 수 있는
TextWeights에 대해 알아보겠습니다.
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/'
# 서비스 클라이언트를 생성
index_client = SearchIndexClient(endpoint, AzureKeyCredential(key))
우선 사용 중인 Azure의 정보를 통해
index_client를 생성합니다.
from azure.search.documents.indexes.models import (
ComplexField,
CorsOptions,
SearchIndex,
SearchFieldDataType,
SimpleField,
SearchableField
)
# 생성할 인덱스명 설정
index_name = 'test'
fields = [
SimpleField(name="testId", type=SearchFieldDataType.String, key=True),
SearchableField(name="testRate", type=SearchFieldDataType.Double,
filterable=True),
SearchableField(name="description", type=SearchFieldDataType.String),
SearchableField(name="testTag", type=SearchFieldDataType.String,
filterable=True, collection=True)
]
description, testTag는 String 타입의 필드이고
testTag를 우선적으로 검색에 활용하도록
scoring_profiles를 작성해 보도록 하겠습니다.
from azure.search.documents.indexes.models import (
ScoringProfile,
TextWeights
)
cors_options = CorsOptions(allowed_origins=["*"], max_age_in_seconds=60)
scoring_profile = ScoringProfile(
name = 'testProfile',
text_weights = TextWeights(
weight = {
'description' : 0.5,
'testTag' : 1.0
}
)
)
scoring_profiles = []
scoring_profiles.append(scoring_profile)
index = SearchIndex(
name=index_name,
fields=fields,
scoring_profiles=scoring_profiles,
cors_options=cors_options)
result = index_client.create_index(index)
TextWeights를 통해 testTag 필드에는 1.0의 가중치를
description 필드에는 0.5의 가중치를 할당함으로
testTag에 검색 우선순위를 주었습니다.
TextWeights에서 가중치를 설정하실 때
주의사항으로는 음수(-)와 0.0으로 설정은 불가능하며
0.0보다 큰 수치로만 설정할 수 있습니다.
아래에 Azure Cognitive Search의 Scoring Profile 링크를 참고로 하시면
더 많은 정보를 확인하실 수 있습니다.
'Azure > Cognitive Search' 카테고리의 다른 글
[Azure] Cognitive Search Vector Search 벡터 유사도 검색(Python) (0) | 2023.07.11 |
---|---|
[Azure] Cognitive Search로 자동 완성 검색 구현하기 Suggest API(Python) (0) | 2023.07.07 |
[Azure] Cognitive Search로 검색 및 필터 설정 (Python) (0) | 2023.07.05 |
[Azure] Cognitive Search Index 생성, 삭제, 업로드 (Python) (0) | 2023.07.04 |
[Azure] Cognitive Search Index Field 종류 (Python) (0) | 2023.07.04 |
Comments