필터링 및 정렬 적용
이는 사용자가 필드 값을 기준으로 필터링하고 정렬하여 쿼리 결과를 구체화할 수 있는 검색 솔루션에서 일반적으로 사용됩니다. Azure AI 검색은 검색 쿼리 API를 통해 이러한 기능을 모두 지원합니다.
결과 필터링
다음 두 가지 방법으로 쿼리에 필터를 적용할 수 있습니다.
- ‘단순’ 검색 식에 필터 조건을 포함합니다.
- ‘전체’ 구문 검색 식으로 $filter 매개 변수에 OData 필터 식을 제공합니다.
인덱스의 모든 filterable에 필터를 적용할 수 있습니다.
예를 들어 author 필드 값이 ‘Reviewer’인 문서 중에서 ‘London’이라는 텍스트를 포함하고 있는 문서를 찾는다고 가정합니다.
다음과 같은 ‘단순’ 검색 식을 제출하여 결과를 얻을 수 있습니다.
search=London+author='Reviewer'
queryType=Simple
또는 다음과 같이 ‘전체’ Lucene 검색 식으로 $filter 매개 변수에 OData 필터를 사용할 수 있습니다.
search=London
$filter=author eq 'Reviewer'
queryType=Full
팁
OData $filter 식은 대/소문자를 구분합니다.
패싯을 사용한 필터링
‘패싯’은 결과 집합의 필드 값을 기준으로 필터링 조건에 해당하는 사용자를 표시하는 유용한 방법입니다. 필드에 사용자 인터페이스에 링크나 옵션으로 표시할 수 있는 개별 값이 적은 경우에 가장 적합합니다.
패싯을 사용하려면 초기 쿼리에서 가능한 값을 검색하는 facetable 필드를 지정해야 합니다. 예를 들어 다음 매개 변수를 사용하여 author 필드에 사용할 수 있는 모든 값을 반환할 수 있습니다.
search=*
facet=author
이 쿼리의 결과는 사용자가 선택할 수 있도록 사용자 인터페이스에 표시할 수 있는 개별 패싯 값의 컬렉션을 포함합니다. 그런 다음 후속 쿼리에서 선택한 패싯 값을 사용하여 결과를 필터링할 수 있습니다.
search=*
$filter=author eq 'selected-facet-value-here'
결과 정렬
기본적으로 결과는 쿼리 프로세스에서 할당된 관련성 점수를 기준으로 정렬되며 점수가 높은 순으로 나열됩니다. 단, 하나 이상의 sortable 필드와 정렬 순서(asc 또는 desc)를 지정하는 OData orderby 매개 변수를 포함하여 정렬 순서를 재정의할 수 있습니다.
예를 들어 가장 최근에 수정된 순서로 문서가 나열되도록 결과를 정렬하기 위해 다음 매개 변수 값을 사용할 수 있습니다.
search=*
$orderby=last_modified desc
참고 항목
필터 사용에 대한 자세한 내용은 Azure AI 검색의 필터를 참조하세요. 정렬 및 적중 항목 강조 표시를 비롯하여 결과를 사용하는 방법에 대한 자세한 내용은 Azure AI 검색에서 검색 결과를 사용하는 방법을 참조하세요.