Stosowanie filtrowania i sortowania

Ukończone

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.