Stosowanie filtrowania i sortowania
Często w rozwiązaniu wyszukiwania użytkownicy chcą uściślić wyniki zapytań, filtrując i sortując według wartości pól. Usługa Azure AI Search obsługuje obie te możliwości za pośrednictwem interfejsu API zapytań wyszukiwania.
Filtrowanie wyników
Filtry można stosować do zapytań na dwa sposoby:
- Uwzględniając kryteria filtrowania w prostym wyrażeniu wyszukiwania.
- Dostarczając wyrażenie filtru OData jako parametr $filter z pełnym wyrażeniem wyszukiwania składni.
Filtr można zastosować do dowolnego pola z możliwością filtrowania w indeksie.
Załóżmy na przykład, że chcesz znaleźć dokumenty zawierające tekst w Londynie, które mają wartość pola autora recenzenta.
Ten wynik można osiągnąć, przesyłając następujące proste wyrażenie wyszukiwania :
search=London+author='Reviewer'
queryType=Simple
Alternatywnie możesz użyć filtru OData w parametrze $filter z pełnym wyrażeniem wyszukiwania Lucene w następujący sposób:
search=London
$filter=author eq 'Reviewer'
queryType=Full
Napiwek
Wyrażenia $filter OData są uwzględniane w wielkości liter!
Filtrowanie przy użyciu aspektów
Aspekty to przydatny sposób prezentowania użytkownikom kryteriów filtrowania na podstawie wartości pól w zestawie wyników. Działają najlepiej, gdy pole ma niewielką liczbę dyskretnych wartości, które mogą być wyświetlane jako linki lub opcje w interfejsie użytkownika.
Aby używać aspektów, należy określić pola aspektowe , dla których chcesz pobrać możliwe wartości w początkowym zapytaniu. Na przykład możesz użyć następujących parametrów, aby zwrócić wszystkie możliwe wartości dla pola autora :
search=*
facet=author
Wyniki tego zapytania obejmują kolekcję dyskretnych wartości aspektów, które można wyświetlić w interfejsie użytkownika do wybrania. Następnie w kolejnym zapytaniu możesz użyć wybranej wartości aspektu do filtrowania wyników:
search=*
$filter=author eq 'selected-facet-value-here'
Sortowanie wyników
Domyślnie wyniki są sortowane na podstawie wyniku trafności przypisanego przez proces zapytania, z najwyższymi wynikami na liście pierwszych. Można jednak zastąpić tę kolejność sortowania, dołączając parametr OData orderby określający co najmniej jedno pole sortowalne i kolejność sortowania (asc lub desc).
Aby na przykład posortować wyniki tak, aby ostatnio zmodyfikowane dokumenty były wyświetlane jako pierwsze, można użyć następujących wartości parametrów:
search=*
$orderby=last_modified desc
Uwaga
Aby uzyskać więcej informacji na temat używania filtrów, zobacz Filtry w usłudze Azure AI Search. Aby uzyskać informacje na temat pracy z wynikami, w tym sortowania i wyróżniania trafień, zobacz Jak pracować z wynikami wyszukiwania w usłudze Azure AI Search.