Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Cosmos DB in Fabric bietet ein leistungsfähiges Feature für die Volltextsuche wie allgemein verfügbar. Dieses Feature wurde entwickelt, um die systemeigenen Suchfunktionen Ihrer Apps zu verbessern, ohne einen externen Suchdienst für die grundlegende Volltextsuche zu benötigen.
Was ist die Volltextsuche?
Cosmos DB in Fabric bietet Volltextindizierung und Suche, die entwickelt wurde, um Ihre Such- und Abrufworkloads zu verbessern. Dieses Feature umfasst erweiterte Textverarbeitungstechniken wie Wortstammerkennung, Stoppwortentfernung und Tokenisierung, wodurch effiziente und effektive Textsuchen über einen speziellen Textindex ermöglicht werden. Die Volltextsuche umfasst außerdem die Volltextbewertung mit einer Funktion, die die Relevanz von Dokumenten für eine bestimmte Suchabfrage auswertet. BM25 (Best Matching 25) berücksichtigt Faktoren wie Begriffshäufigkeit, umgekehrte Dokumenthäufigkeit und Dokumentlänge für die Bewertung von Dokumenten. Dadurch wird sichergestellt, dass die relevantesten Dokumente oben in den Suchergebnissen angezeigt werden, um die Genauigkeit und Nützlichkeit von Textsuchen zu verbessern.
Die Volltextsuche eignet sich ideal für verschiedene Szenarien, darunter:
E-Commerce: Schnelle Suche nach Produkten basierend auf Beschreibungen, Bewertungen und anderen Textattributen.
Content Management: Effizientes Durchsuchen von Artikeln, Blogs und Dokumenten.
Kundendienst: Abrufen relevanter Supporttickets, FAQs und Knowledge Base-Artikel.
Benutzerinhalte: Analysieren und Durchsuchen von benutzergenerierten Inhalten wie Beiträgen und Kommentaren.
RAG für Chatbots: Verbessern der Chatbot-Antworten durch Abrufen relevanter Informationen aus großen Textkorpora, wodurch die Genauigkeit und Relevanz von Antworten verbessert wird.
Multi-Agent-KI-Apps: Aktivieren mehrerer KI-Agents zum gemeinsamen Durchsuchen und Analysieren großer Textdatenmengen, um umfassende und differenzierte Erkenntnisse bereitzustellen.
Wie man die Volltextsuche verwendet
Konfigurieren Sie einen Container mit einer Volltextrichtlinie und einem Volltextindex.
Fügen Sie Ihre Daten mit Texteigenschaften ein.
Führen Sie Abfragen für die Daten mithilfe von Volltext-Suchsystemfunktionen aus.
Konfigurieren von Containerrichtlinien und Indizes für die Hybridsuche
Um Die Funktionen für die Volltextsuche zu verwenden, sollten Sie zuerst zwei Richtlinien definieren:
Eine Volltextrichtlinie auf Containerebene, die definiert, welche Pfade Text für die neuen Funktionen des Volltextabfragesystems enthalten.
Ein der Indizierungsrichtlinie hinzugefügter Volltextindex, der eine effiziente Suche ermöglicht.
Sie können Volltextsuchabfragen ohne diese Richtlinien ausführen, aber sie verwenden nicht den Volltextindex und können weitere Anforderungseinheiten (RUs) verwenden. Ohne diese Richtlinie kann die Ausführung von Volltextsuchen auch länger dauern. Das Definieren von Volltextcontainer- und Indexrichtlinien wird empfohlen.
Volltextrichtlinie
Für jede Texteigenschaft, die Sie für die Volltextsuche konfigurieren möchten, müssen Sie sowohl path der Eigenschaft mit Text als auch language des Texts deklarieren. Eine einfache Volltextrichtlinie kann wie folgt aussehen:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text",
"language": "en-US"
}
]
}
Das Definieren mehrerer Textpfade erfolgt ganz einfach durch Hinzufügen eines weiteren Elements zum fullTextPolicy-Array:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text1",
"language": "en-US"
},
{
"path": "/text2",
"language": "en-US"
}
]
}
Von Bedeutung
Wildcardzeichen (*, []) werden derzeit nicht in der Volltextrichtlinie oder im Volltextindex unterstützt.
Weitere Informationen und Beispiele für Einstellungen einer Volltextrichtlinie finden Sie unter Volltextindizierungsrichtlinienbeispiele.
Mehrsprachige Unterstützung
Unterstützung für mehrere Sprachen ermöglicht es Ihnen, Text in Sprachen über Englisch hinaus indizieren und zu durchsuchen. Sie wendet sprachspezifische Tokenisierung, Wortstammerkennung und Stoppwortentfernung an, um genauere Suchergebnisse zu erhalten.
Hinweis
Die Unterstützung für mehrere Sprachen befindet sich in der frühen Vorschau. Die Leistung und Qualität der Suche unterscheiden sich möglicherweise von der Volltextsuche in Englisch. Das Entfernen von Stoppworten ist z. B. zurzeit nur für Englisch (en-us) verfügbar. Die Funktionalität kann durch die Weiterentwicklung der Vorschau geändert werden.
Weitere Informationen zu Einschränkungen im Zusammenhang mit multisprachlicher Unterstützung finden Sie unter Cosmos DB-Volltextbeschränkungen.
Volltextindex
Alle Volltextsuchvorgänge sollten einen Volltextindex verwenden. Ein Volltextindex kann in jeder Cosmos DB in Fabric-Indexrichtlinie ganz einfach im folgenden Beispiel definiert werden:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
}
]
}
Wie bei den Volltextrichtlinien können Volltextindizes auf mehreren Pfaden definiert werden:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
},
{
"path": "/text2"
}
]
}
Volltextsuchabfragen
Volltextsuche und Bewertungsvorgänge werden mit den folgenden Systemfunktionen in der Cosmos DB in Fabric-Abfragesprache ausgeführt:
FULLTEXTCONTAINS: Gibttruezurück, wenn eine angegebene Zeichenfolge in der angegebenen Eigenschaft eines Dokuments enthalten ist. Diese Funktion ist in einerWHEREKlausel hilfreich, wenn Sie sicherstellen möchten, dass bestimmte Schlüsselwörter in den von Ihrer Abfrage zurückgegebenen Dokumenten enthalten sind.FULLTEXTCONTAINSALL: Gibttruezurück, wenn alle der angegebenen Zeichenfolgen in der angegebenen Eigenschaft eines Dokuments enthalten sind. Diese Funktion ist in einerWHEREKlausel hilfreich, wenn Sie sicherstellen möchten, dass mehrere Schlüsselwörter in den von Ihrer Abfrage zurückgegebenen Dokumenten enthalten sind.FULLTEXTCONTAINSANY: Gibttruezurück, wenn eine der angegebenen Zeichenfolgen in der angegebenen Eigenschaft eines Dokuments enthalten ist. Diese Funktion ist in einerWHEREKlausel hilfreich, wenn Sie sicherstellen möchten, dass mindestens eines der Schlüsselwörter in den von Ihrer Abfrage zurückgegebenen Dokumenten enthalten ist.FULLTEXTSCORE: Verwenden Sie diese Funktion in einerORDER BY RANKKlausel, um Dokumente zurückzugeben, die nach ihrer Volltextbewertung sortiert sind, die relevantesten Dokumente (höchste Bewertung) oben und die am wenigsten relevanten (niedrigsten Bewertungen) unten.
Im Folgenden finden Sie einige Beispiele für die einzelnen Funktionen.
FULLTEXTCONTAINS
In diesem Beispiel möchten wir die ersten 10 Ergebnisse abrufen, in denen der Ausdruck "rotes Fahrrad" in der Eigenschaft c.textenthalten ist.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red bicycle")
FULLTEXTCONTAINSALL
In diesem Beispiel möchten wir erste 10 Ergebnisse erhalten, bei denen die Schlüsselwörter "rot" und "fahrrad" in der Eigenschaft c.textenthalten sind, aber nicht unbedingt zusammen.
SELECT TOP 10 *
FROM c
WHERE FULLTEXTCONTAINSALL(c.text, "red", "bicycle")
FULLTEXTCONTAINSANY
In diesem Beispiel möchten wir die ersten 10 Ergebnisse abrufen, bei denen die Schlüsselwörter „red“ und entweder „bicycle“ oder „skateboard“ in der Eigenschaft c.text enthalten sind.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red") AND
FULLTEXTCONTAINSANY(c.text, "bicycle", "skateboard")
FULLTEXTSCORE
In diesem Beispiel möchten wir die ersten 10 Ergebnisse abrufen, in denen „mountain“ und „bicycle“ enthalten sind. Die Ergebnisse sollen nach Relevanz sortiert werden. Das heißt, Dokumente, in denen diese Begriffe häufiger vorkommen, sollten weiter oben in der Liste angezeigt werden.
SELECT TOP 10
*
FROM
container c
ORDER BY RANK
FULLTEXTSCORE(c.text, "bicycle", "mountain")
Von Bedeutung
FULLTEXTSCORE kann nur in der ORDER BY RANK-Klausel verwendet werden und nicht in der SELECT-Anweisung oder in einer WHERE-Klausel.
Fuzzysuche
Die Fuzzysuche kann die Toleranz gegenüber Tippfehlern und Textvariationen verbessern. Sie können einen zulässigen "Abstand" (Anzahl der Bearbeitungen) zwischen dem Suchbegriff und Dokumenttext angeben, sodass nahe Übereinstimmungen als Treffer angesehen werden können. Der maximale Abstand, der angegeben werden kann, ist 2 (zwei Bearbeitungen).
Hinweis
Die Fuzzysuche befindet sich in der frühen Vorschau. Leistung, Qualität und Funktionalität können sich durch die Weiterentwicklung der Vorschau ändern.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, {"term": "red", "distance":1}, {"term": "bicycle", "distance":2})