Zoeken in volledige tekst in Azure Cosmos DB voor NoSQL (preview)
Azure Cosmos DB voor NoSQL biedt nu een krachtige functie voor zoeken in volledige tekst in preview, ontworpen om de zoekmogelijkheden van uw toepassingen te verbeteren.
Notitie
Full Text & Hybrid Search is in een vroeg voorbeeld en is op dit moment mogelijk niet beschikbaar in alle regio's.
Wat is zoeken in volledige tekst?
Azure Cosmos DB for NoSQL biedt nu een krachtige functie voor zoeken in volledige tekst in preview, ontworpen om uw mogelijkheden voor gegevensquery's te verbeteren. Deze functie omvat geavanceerde technieken voor tekstverwerking, zoals stemming, stoppen met het verwijderen van woorden en tokenisatie, waardoor efficiënte en effectieve tekstzoekopdrachten mogelijk zijn via een gespecialiseerde tekstindex. Zoeken in volledige tekst bevat ook een score voor volledige tekst met een functie waarmee de relevantie van documenten voor een bepaalde zoekquery wordt geëvalueerd. BM25, of Best Matching 25, houdt rekening met factoren zoals termfrequentie, inverse documentfrequentie en documentlengte om documenten te scoren en rangschikken. Dit helpt ervoor te zorgen dat de meest relevante documenten boven aan de zoekresultaten worden weergegeven, waardoor de nauwkeurigheid en bruikbaarheid van zoekopdrachten in tekst worden verbeterd.
Zoeken in volledige tekst is ideaal voor verschillende scenario's, waaronder:
- E-commerce: Vind snel producten op basis van beschrijvingen, beoordelingen en andere tekstkenmerken.
- Inhoudsbeheer: Efficiënt zoeken in artikelen, blogs en documenten.
- Klantondersteuning: Haal relevante ondersteuningstickets, veelgestelde vragen en knowledge base-artikelen op.
- Gebruikersinhoud: analyseren en doorzoeken door gebruikers gegenereerde inhoud, zoals berichten en opmerkingen.
- RAG voor chatbots: Verbeter chatbotreacties door relevante informatie op te halen uit grote tekst corpora, waardoor de nauwkeurigheid en relevantie van antwoorden worden verbeterd.
- AI-apps met meerdere agents met meerdere agents voor meerdere agents: hiermee kunnen grote hoeveelheden tekstgegevens worden gezocht en geanalyseerd, waardoor uitgebreide en genuanceerde inzichten worden geboden.
Zoeken in volledige tekst gebruiken
Notitie
Full Text & Hybrid Search (preview) is momenteel mogelijk niet beschikbaar in alle regio's.
- Schakel de preview-functie 'Full Text & Hybrid Search for NoSQL' in.
- Configureer een container met een beleid voor volledige tekst en een index voor volledige tekst.
- Voeg uw gegevens in met teksteigenschappen.
- Voer hybride query's uit op de gegevens.
De volledige tekst en hybride zoekopdracht inschakelen voor noSQL-preview-functie
Zoeken in volledige tekst, scoren van volledige tekst en hybride zoeken vereisen dat u de preview-functie inschakelt in uw Azure Cosmos DB for NoSQL-account voordat u deze gebruikt. Volg de onderstaande stappen om u te registreren:
- Navigeer naar de resourcepagina van Azure Cosmos DB for NoSQL.
- Selecteer het deelvenster Functies onder het menu-item Instellingen.
- Selecteer de functie 'Full Text & Hybrid Search for NoSQL API (preview)'.
- Lees de beschrijving van de functie om te bevestigen dat u deze wilt inschakelen.
- Selecteer Inschakelen om de vectorindexering en zoekfunctie in te schakelen.
Containerbeleid en -indexen configureren voor hybride zoekopdrachten
Als u zoekmogelijkheden voor volledige tekst wilt gebruiken, moet u eerst twee beleidsregels definiëren:
- Een beleid voor volledige tekst op containerniveau waarmee wordt gedefinieerd welke paden tekst bevatten voor de nieuwe functies van het querysysteem voor volledige tekst.
- Een volledige-tekstindex die is toegevoegd aan het indexeringsbeleid waarmee efficiënt kan worden gezocht.
Beleid voor volledige tekst
Voor elke teksteigenschap die u wilt configureren voor zoeken in volledige tekst, moet u zowel de path
eigenschap met tekst als de language
tekst van de tekst declareren. Een eenvoudig beleid voor volledige tekst kan zijn:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text",
"language": "en-US"
}
]
}
U kunt eenvoudig meerdere tekstpaden definiëren door een ander element toe te voegen aan de fullTextPolicy
matrix:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text1",
"language": "en-US"
},
{
"path": "/text2",
"language": "en-US"
}
]
}
Notitie
Engels ('en-us' als taal) is de enige ondersteunde taal op dit moment.
Belangrijk
Jokertekens (*, []) worden momenteel niet ondersteund in het volledige tekstbeleid of de volledige-tekstindex.
Index voor volledige tekst
Alle zoekbewerkingen voor volledige tekst moeten gebruikmaken van een volledige tekstindex. Een volledige-tekstindex kan eenvoudig worden gedefinieerd in elk Azure Cosmos DB for NoSQL-indexbeleid volgens het onderstaande voorbeeld.
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
}
]
}
Net als bij het volledige tekstbeleid kunnen indexen voor volledige tekst op meerdere paden worden gedefinieerd.
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
},
{
"path": "/text2"
}
]
}
Query's voor zoeken in volledige tekst
Zoek- en scorebewerkingen voor volledige tekst worden uitgevoerd met behulp van de volgende systeemfuncties in de Querytaal van Azure Cosmos DB voor NoSQL:
FullTextContains
: retourneerttrue
als een bepaalde tekenreeks is opgenomen in de opgegeven eigenschap van een document. Dit is handig in eenWHERE
component als u ervoor wilt zorgen dat specifieke sleutelwoorden worden opgenomen in de documenten die door uw query worden geretourneerd.FullTextContainsAll
: retourneerttrue
als alle opgegeven tekenreeksen zijn opgenomen in de opgegeven eigenschap van een document. Dit is handig in eenWHERE
component als u ervoor wilt zorgen dat meerdere sleutelwoorden worden opgenomen in de documenten die door uw query worden geretourneerd.FullTextContainsAny
: retourneerttrue
als een van de opgegeven tekenreeksen is opgenomen in de opgegeven eigenschap van een document. Dit is handig in eenWHERE
component als u ervoor wilt zorgen dat ten minste één van de sleutelwoorden wordt opgenomen in de documenten die door uw query worden geretourneerd.FullTextScore
: retourneert een score. Dit kan alleen worden gebruikt in eenORDER BY RANK
component, waarbij de geretourneerde documenten worden gerangschikt op basis van de positie van de volledige tekstscore, met de meeste relevante (hoogste score) documenten bovenaan en minst relevante (laagste score) documenten onderaan.
Hier volgen enkele voorbeelden van elke functie die wordt gebruikt.
FullTextContains
In dit voorbeeld willen we de eerste 10 resultaten verkrijgen waarbij het trefwoord 'fiets' in de eigenschap c.text
staat.
SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "bicycle")
FullTextContainsAll
In dit voorbeeld willen we de eerste 10 resultaten verkrijgen waarbij de trefwoorden 'rood' en 'fiets' zijn opgenomen in de eigenschap c.text
.
SELECT TOP 10 *
FROM c
WHERE FullTextContainsAll(c.text, "red", "bicycle")
FullTextContainsAny
In dit voorbeeld willen we de eerste 10 resultaten verkrijgen waarbij de trefwoorden 'rood' en 'fiets' of 'skateboard' zijn opgenomen in de eigenschap c.text
.
SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "red") AND FullTextContainsAny(c.text, "bicycle", "skateboard")
FullTextScore
In dit voorbeeld willen we de eerste 10 resultaten verkrijgen waarbij 'berg' en 'fiets' zijn opgenomen en gesorteerd op volgorde van relevantie. Documenten met deze termen moeten dus vaker hoger worden weergegeven in de lijst.
SELECT TOP 10 *
FROM c
ORDER BY RANK FullTextScore(c.text, ["bicycle", "mountain"])
Belangrijk
FullTextScore kan alleen worden gebruikt in de ORDER BY RANK
component en niet worden geprojecteerd in de SELECT
instructie of in een WHERE
component.