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 | Nur-Text und für Menschen lesbare Inhalte. | Unformatierter Inhalt, extrahiert aus Quelldokumenten, unterstützende Filter und Musterabgleichungsabfragen wie raumbezogene Suche, Fuzzy-Suche und Feldsuche. |
In diesem Artikel liegt der Fokus auf der letzten Kategorie: Abfragen, die bei Nur-Text-Inhalten und von Menschen lesbaren Inhalten funktionieren, die 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).
Filtern der Suche
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.
Geosuche
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:
- Definieren Sie ein filterbares Feld eines der folgenden Typen: Edm.GeographyPoint, Collection(Edm.GeographyPoint, Edm.GeographyPolygon).
- Überprüfen Sie, ob die eingehenden Dokumente die entsprechenden Koordinaten enthalten.
- Erstellen Sie nach Abschluss der Indizierung eine Abfrage, die einen Filter und eine Geofunktion verwendet.
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=2024-07-01
{
"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.