Azure

[Azure] AI Search - Synonym map 생성/조회/삭제

비번변경 2024. 12. 19. 11:52

개요

2024.12.02-[Azure] AI Search - Synonym map에서 Azure AI Search의 기능 중 하나인 Synonym map에 대해 알아보았다. 이번 글에서는 Python 상에서 Synonym map을 생성하고 조회하고 삭제하는 방법을 정리해두려고 한다.

 

+ 필드에 적용하는 방법은 다른 글로 적어두겠다.

 

 

서비스 인증

Azure Python SDK로 AI Search에 대한 서비스 인증을 하기 위해서는 먼저 AI Search 리소스가 생성되어있어야 한다. 현재 직접 리소스를 생성할 수 있는 환경이 되어 있지 않아 이 글에서는 이미 생성되어 있다고 가정하겠다.

서비스 생성 자체는 https://learn.microsoft.com/en-us/azure/search/search-create-service-portal을 참고하면 좋을 것 같다.

 

Azure AI Search 서비스를 생성했다면, 이제 서비스 인증에 필요한 엔드포인트와 API KEY를 확인해야 한다. 서비스 엔드포인트는 AI Search 리소스의 URL이 해당되는 것으로 보인다.

 

그리고 API KEY는 Keys 메뉴에서 생성하여 얻을 수 있는 것 같다.

이 두 가지 정보와 AzureKeyCredential, SearchIndexClient를 사용하여 클라이언트를 구성한다.

from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient

credential = AzureKeyCredential(AZURE_SEARCH_API_KEY)
client = SearchIndexClient(
    endpoint=AZURE_SEARCH_SERVICE,
    credential=credential
)

이 부분은 함수로 만들어서 재사용하면 좋을 것 같다.

 

 

생성

Azure AI Search와 관련된 리소스는 해당 클래스 객체를 생성하고, create 함수를 호출하는 시점에 클라우드 환경에 생성되는 것 같다.

synonym map 관련 클래스는 다음과 같이 임포트하여 사용한다.

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

이제 생성자에 이름과 규칙을 전달한 뒤, create_synonym_map 또는 create_or_update_synonym_map 함수를 호출한다.

synonyms = [
       "USA, United States, United States of America",
       "Washington, Wash. => WA",
   ]
synonym_map = SynonymMap(name="test-synonym", synonyms=synonyms)
result = client.create_or_update_synonym_map(synonym_map)

만약 synonym map의 갱신이 필요하다면 동일하게 SynonyMap 객체를 생성하고 create_or_update_synonym_map 함수를 사용하면 된다.

 

 

조회

생성한 synonym map은 get_synonym_map_names 함수로 목록을 확인하거나 get_synonym_map 함수로 특정 synonym map의 정보를 확인할 수 있다.

 

- get_synonym_map_names 

client.get_synonym_map_names()

- get_synonym_map 

print(client.get_synonym_map('test-synonym'))

 

 

삭제

생성한 synonym map은 delete_synonym_map 함수로 삭제할  synonym map의 이름을 전달하여 삭제할 수 있다.

client = get_index_client()
client.delete_synonym_map('test-synonym')

잘 삭제되었는지는 synonym map 목록을 확인하는 등의 방법으로 확인할 수 있다.

 

 

참고 문서

https://learn.microsoft.com/ko-kr/python/api/azure-search-documents/azure.search.documents.indexes.searchindexclient?view=azure-python