Abfragen in Azure KI Search

Azure KI Search unterstützt Abfragekonstrukte für eine breite Palette von Szenarien, von der Freiformtextsuche, über sehr spezifische Abfragemuster bis hin zur Vektorsuche. Alle Abfragen werden über einen Suchindex ausgeführt, der suchbare Inhalte speichert.

Abfragetypen

Abfrageformular Suchbarer Inhalt Beschreibung
Volltextsuche Invertierte Indizes von tokenisierten Ausdrücken. Volltextabfragen durchlaufen invertierte Indizes, die für schnelle Scans strukturiert sind. Hierbei kann in jedem Feld einer beliebigen Anzahl von Suchdokumenten eine Übereinstimmung gefunden werden. Text wird für die Volltextsuche analysiert und tokenisiert.
Vektorsuche Vektorindizes von generierten Einbettungen. Vektorabfragen durchlaufen Vektorfelder in einem Suchindex.
Hybridsuche Alles obige in einem einzigen Suchindex. Kombiniert die Textsuche und die Vektorsuche in einer einzigen Abfrageanforderung. Die Textsuche funktioniert bei Nur-Text-Inhalten in den Feldern "suchbar" und "filterbar". Die Vektorsuche funktioniert auf Inhalten in Vektorfeldern.
Andere Klartext und alphanumerische Inhalte. Unformatierter Inhalt, extrahiert aus Quelldokumenten, unterstützende Filter und Musterabgleichungsabfragen wie raumbezogene Suche, Fuzzy-Suche und Feldsuche.

In diesem Artikel wird der Fokus auf die letzte Kategorie gelegt: Abfragen, die bei Klartextinhalten und alphanumerischen Inhalten funktionieren, aus der ursprünglichen Quelle extrahiert und für Filter und andere spezielle Abfrageformulare verwendet werden.

AutoVervollständigen und vorgeschlagene Abfragen

AutoVervollständigen und Vorschläge sind Alternativen zu search, die in Funktionen zur Suche während der Eingabe mehrere aufeinander folgende Abfrageanforderungen basierend auf eingegebenen Teilzeichenfolgen (nach jedem Zeichen) auslösen. Sie können die Parameter autocomplete und suggestions gemeinsam oder separat verwenden, wie in dieser Anleitung beschrieben. Die Verwendung mit search ist allerdings nicht möglich. Sowohl automatisch vervollständigte Begriffe als auch vorgeschlagene Abfragen werden aus dem Indexinhalt abgeleitet. Das Modul gibt niemals eine Zeichenfolge oder einen Vorschlag zurück, der in Ihrem Index nicht vorhanden ist. Weitere Informationen finden Sie unter AutoVervollständigen (REST-API) und Vorschläge (REST-API).

Filter werden häufig in Apps verwendet, die auf Azure KI Search basieren. Auf Anwendungsseiten werden Filter oft als Facetten in Linknavigationsstrukturen dargestellt, sodass Benutzer die Filterung steuern können. Filter werden auch intern verwendet, um Slices der indizierten Inhalte verfügbar zu machen. Beispielsweise können Sie eine Suchseite mithilfe eines auf eine Produktkategorie festgelegten Filters initialisieren oder einen Sprachfilter verwenden, wenn ein Index Felder sowohl in englischer als auch in französischer Sprache enthält.

Möglicherweise benötigen Sie auch Filter, um ein spezielles Abfrageformular aufzurufen, wie in der folgenden Tabelle beschrieben. Sie können einen Filter mit einer nicht spezifizierten Suche (search=*) oder mit einer Abfragezeichenfolge verwenden, die Begriffe, Ausdrücke, Operatoren und Muster umfasst.

Filterszenario Beschreibung
Bereichsfilter In Azure KI Search werden Bereichsabfragen anhand des Filterparameters erstellt. Weitere Informationen und Beispiele finden Sie unter Beispiel: Bereichsfilter.
Facettennavigation In der Facettennavigationsstruktur können Benutzer Facets auswählen. Bei Filterung werden die Suchergebnisse bei jedem Klick eingeengt. Jede Facette wird durch einen Filter unterstützt, der Dokumente ausschließt, die nicht mehr den durch das Facet angegebenen Kriterien entsprechen.

Hinweis

In einem Filterausdruck verwendeter Text wird während der Abfrageverarbeitung nicht analysiert. Hierbei wird davon ausgegangen, dass es sich bei der Texteingabe um ein wortgetreues Zeichenmuster mit Beachtung der Groß- und Kleinschreibung handelt, das entweder erfolgreich oder nicht erfolgreich mit der Abfrage abgeglichen wird. Filterausdrücke werden mithilfe der OData-Syntax erstellt und in einem filter-Parameter an alle filterbaren Felder in Ihrem Index übergeben. Weitere Informationen finden Sie unter Filter in Azure KI Search.

Die Geosuche gleicht anhand der Breiten- und Längenkoordinaten eines Standorts für „In meiner Nähe suchen“ oder einer kartenbasierte Suchoberfläche ab. In Azure KI Search können Sie die Geosuche implementieren, indem Sie die folgenden Schritte ausführen:

Die Geosuche verwendet Kilometer für die Entfernung. Koordinaten werden in diesem Format angegeben: (longitude, latitude).

Hier ist ein Beispiel für einen Filter für die Geosuche. Dieser Filter findet andere Location Felder im Suchindex, die Koordinaten innerhalb eines Radius von 300 Kilometern des geografischen Punkts haben (in diesem Beispiel Washington D.C.). Er gibt Adressinformationen im Ergebnis zurück und enthält eine optionale facets Klausel für die Selbstnavigation basierend auf der Position.

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2023-07-01-Preview
{
    "count": true,
    "search": "*",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"],
    "select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
    "top": 7
}

Weitere Informationen und Beispiele finden Sie unter Beispiel: Geosuche.

Dokumentsuche

Im Gegensatz zu den bisher beschriebenen Abfrageformen wird hier ein einzelnes Suchdokument anhand der ID abgerufen, ohne entsprechende Indexsuche oder -überprüfung. Es wird nur dieses eine Dokument angefordert und zurückgegeben. Wenn ein Benutzer in Suchergebnissen ein Element auswählt, besteht die typische Antwort darin, dass das Dokument abgerufen und die Detailseite mit Feldern aufgefüllt wird. Die Dokumentsuche ist der Vorgang, der diesen Fall unterstützt.

Erweiterte Suche: Fuzzy, Platzhalter, Näherung, regulärer Ausdruck

Ein erweitertes Abfrageformular benötigt die vollständige Version des Lucene-Parsers sowie Operatoren, die ein bestimmtes Abfrageverhalten auslösen.

Abfragetyp Verwendung Beispiele und weitere Informationen
Feldbezogene Suche search Parameter, queryType=full Erstellen Sie einen zusammengesetzten Abfrageausdruck für ein einzelnes Feld.
Beispiel für die feldbezogene Suche
Fuzzysuche search Parameter, queryType=full Sucht nach Begriffen mit ähnlichem Aufbau oder ähnlicher Rechtschreibung.
Beispiel für die Fuzzysuche
NEAR-Suche search Parameter, queryType=full Sucht nach Begriffen, die in einem Dokument nahe beieinander vorkommen.
Beispiel für die NEAR-Suche
Term Boosting search Parameter, queryType=full Weist einem Dokument, das den verstärkten Begriff enthält, im Vergleich zu anderen Dokumenten, bei denen dies nicht der Fall ist, einen höheren Rang zu.
Beispiele für die Begriffsverstärkung (Term Boosting)
Suche mit regulären Ausdrücken search Parameter, queryType=full Sucht basierend auf dem Inhalt eines regulären Ausdrucks nach Übereinstimmungen.
Beispiel für einen regulären Ausdruck
Platzhalter- oder Präfixsuche search-Parameter mit *~ oder ?, queryType=full Sucht basierend auf einem Präfix und dem Tildezeichen (~) oder einem einzelnen Zeichen (?) nach Übereinstimmungen.
Beispiel für die Platzhaltersuche

Nächste Schritte

Genauere Informationen zur Implementierung der Abfrage finden Sie in den Beispielen für die jeweilige Syntax. Wenn Sie noch nicht mit der Volltextsuche gearbeitet haben, sollten Sie sich auch genauer ansehen, wie die Abfrage-Engine funktioniert.