Azure

[Azure] AI Search - 검색하기

비번변경 2024. 12. 27. 15:41

개요

2024.12.09-[Azure] AI Search - Index 다루기에서 Azure Python SDK를 사용해 Azure AI Search의 인덱스를 다루는 방법을 알아보았었다. 이번 글에서는 Index에 저장되어 있는 데이터를 검색하는 방법에 대해 나열해둔다.

 

 

클라이언트 정의

먼저 AI Search에서 검색을 수행하기 위해서는 클라이언트를 선언해야 한다.

from azure.core.credentials import AzureKeyCredential
from azure.search.documents import SearchClient

service_endpoint = os.environ["AZURE_SEARCH_SERVICE_ENDPOINT"]
index_name = os.environ["AZURE_SEARCH_INDEX_NAME"]
key = os.environ["AZURE_SEARCH_API_KEY"]

search_client = SearchClient(service_endpoint, index_name, AzureKeyCredential(key))

 

 

검색

아래 코드는 '기술'이라는 키워드로 검색을 수행한다.

search_client.search("기술")

 

빈 검색

인덱스에 저장된 문서를 검색할 때는 search_text에 검색할 키워드를 전달하여 검색할 수 있다. 만약 모든 문서를 검색하는 빈 검색을 수행하고 싶다면 search_text의 값을 "", "*"로 지정하면 된다.

search_client = SearchClient(
        endpoint=AZURE_SEARCH_INDEX,
        index_name=index_name,
        credential=credential
    )
print(*search_client.search("*"))

 

 

반환 필드 제한

search 메서드의 select 매개변수는 검색 결과에서 반환할 필드를 제한한다. 필드를 제한함으로써 전송 데이터 양을 줄이고 검색 대기 시간을 줄일 수 있다.

아래 코드는 '기술'이라는 키워드로 검색한 문서의 'WE_KORTEXT', 'YEAR' 컬럼만 조회한다.

search_client.search("기술", select=['WE_KORTEXT', 'YEAR'])

 

 

쿼리 실행 필드 지정

search 메서드의  search_fields 매개변수는 검색 대상이 되는 필드를 제한한다. 

아래 코드는 'WE_KORTEXT'이라는 컬럼에 '기술'이라는 키워드로 검색을 수행한다.

search_client.search("기술", search_fields=['WE_KORTEXT'])

 

 

필터

search 메서드의 filter 매개변수로 특정 조건을 만족하는 문서만 검색할 수 있다.

아래 코드는 'WE_KORTEXT'이라는 컬럼에 '기술'이라는 키워드로 검색한 문서에서 YEAR라는 컬럼이 2024 이상인 문서만 조회한다.

search_client.search("기술", search_fields=['WE_KORTEXT'], 
                     filter='YEAR ge 2024')

 

 

 

 

참고 문서

https://learn.microsoft.com/ko-kr/azure/search/search-get-started-text?tabs=dotnet