Anwenden von Filterung und Sortierung

Abgeschlossen

Benutzer einer Suchlösung möchten häufig die Abfrageergebnisse durch das Filtern und Sortieren nach Feldwerten verfeinern. Azure KI-Suche unterstützt diese beiden Funktionen über die API für Suchabfragen.

Filtern von Ergebnissen

Sie haben zwei Möglichkeiten für das Anwenden von Filtern auf Abfragen:

  • Durch das Einschließen von Filterkriterien in einen einfachen Suchausdruck.
  • Durch das Bereitstellen eines OData-Filterausdrucks als $filter-Parameter mit einem Suchausdruck in der vollständigen Syntax.

Sie können einen Filter auf jedes filterable-Feld im Index anwenden.

Nehmen Sie beispielsweise an, Sie möchten Dokumente suchen, die den Text London enthalten und deren author-Wert Reviewer lautet.

Sie können dieses Ergebnis erzielen, indem Sie den folgenden einfachen Suchausdruck senden:

search=London+author='Reviewer'
queryType=Simple

Alternativ können Sie einen OData-Filter in einem $filter-Parameter mit einem vollständigen Lucene-Suchausdruck wie dem folgenden verwenden:

search=London
$filter=author eq 'Reviewer'
queryType=Full

Tipp

Bei OData-$filter-Ausdrücken wird die Groß-/Kleinschreibung beachtet!

Filtern mit Facets

Facets sind hilfreich, um für die Benutzer Filterkriterien auf der Grundlage von Feldwerten in einem Resultset bereitzustellen. Sie lassen sich am besten verwenden, wenn ein Feld eine kleine Anzahl diskreter Werte aufweist, die auf der Benutzeroberfläche als Links oder Optionen angezeigt werden können.

Für die Verwendung von Facets müssen Sie facetable-Felder angeben, deren möglichen Werte in einer anfänglichen Abfrage abgerufen werden sollen. Beispielsweise können Sie die folgenden Parameter verwenden, um alle möglichen Werte für das Feld author zurückzugeben:

search=*
facet=author

Die Ergebnisse dieser Abfrage enthalten eine Auflistung diskreter Facetwerte, die auf der Benutzeroberfläche angezeigt werden können, damit sie der Benutzer auswählen kann. Anschließend können Sie in einer nachfolgenden Abfrage den ausgewählten Facetwert verwenden, um die Ergebnisse zu filtern:

search=*
$filter=author eq 'selected-facet-value-here'

Sortieren von Ergebnissen

Standardmäßig werden die Ergebnisse basierend auf der Relevanzbewertung sortiert, die durch den Abfrageprozess zugewiesen wird. Die Übereinstimmungen mit der höchsten Bewertung werden am Anfang der Liste aufgeführt. Sie können diese Sortierreihenfolge jedoch überschreiben, indem Sie einen OData-orderby-Parameter einschließen, der ein oder mehrere sortable-Felder und eine Sortierreihenfolge (asc oder desc) angibt.

Um z. B. die Ergebnisse so zu sortieren, dass die zuletzt geänderten Dokumente zuerst aufgeführt werden, können Sie die folgenden Parameterwerte verwenden:

search=*
$orderby=last_modified desc

Hinweis

Weitere Informationen finden Sie unter Filter in Azure KI-Suche. Informationen zum Arbeiten mit Ergebnissen, einschließlich des Sortierens und Hervorhebens der Treffer, finden Sie unter Arbeiten mit Suchergebnissen in der Azure KI-Suche.