Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Fulltextové indexování a vyhledávání ve službě Cosmos DB (v Azure a Fabric) vylepšuje možnosti nativního vyhledávání vaší aplikace bez nutnosti externí vyhledávací služby. Tato funkce používá pokročilé techniky zpracování textu, jako je stemování, odstraňování stop slov a tokenizace, pro efektivní vyhledávání textu pomocí specializovaného indexu.
Co je fulltextové vyhledávání?
Cosmos DB nabízí fulltextové indexování a vyhledávání, které je navržené pro vylepšení úloh vyhledávání a načítání. Tato funkce zahrnuje pokročilé techniky zpracování textu, jako je odvozování kmenů, odstranění stop slov a tokenizace, což umožňuje efektivní a účinné vyhledávání textu prostřednictvím specializovaného textového indexu. Fulltextové vyhledávání také zahrnuje fulltextové bodování pomocí funkce, která vyhodnocuje význam dokumentů pro daný vyhledávací dotaz. BM25, nebo Best Matching 25, zohledňuje faktory, jako je frekvence termínů, inverzní frekvence dokumentu a délka dokumentu, aby určil skóre a pořadí dokumentů. To pomáhá zajistit, aby se v horní části výsledků hledání zobrazovaly nejrelevantní dokumenty, což zlepšuje přesnost a užitečnost hledání textu.
Fulltextové vyhledávání je ideální pro různé scénáře, mezi které patří:
Elektronické obchodování: Umožňuje rychle najít produkty na základě popisu, recenzí a dalších atributů textu.
Správa obsahu: Efektivně prohledávat články, blogy a dokumenty.
Zákaznická podpora: Načtěte relevantní lístky podpory, nejčastější dotazy a články o znalostní báze.
Uživatelský obsah: Analyzujte a prohledávejte obsah vygenerovaný uživatelem, jako jsou příspěvky a komentáře.
RAG pro chatboty: Vylepšete odpovědi chatovacího robota načtením relevantních informací z velkých textových korporů, zlepšením přesnosti a relevance odpovědí.
Multi-agentní AI aplikace: Umožňují více agentům umělé inteligence spolupracovat na hledání a analýze velkých objemů textových dat, čímž poskytují komplexní a nuancované vhledy.
Jak používat fulltextové vyhledávání
Nakonfigurujte kontejner s fulltextovou politikou a fulltextovým indexem.
Vložte data s atributy textu.
Spouštění dotazů na data pomocí funkcí systému fulltextového vyhledávání
Konfigurace zásad kontejneru a indexů pro hybridní vyhledávání
Pokud chcete používat možnosti fulltextových vyhledávání, měli byste nejprve definovat dvě zásady:
Zásady na úrovni kontejneru pro fulltextové dotazy, které definují, které cesty obsahují text pro nové funkce systému fulltextových dotazů.
Fulltextový index přidaný do zásad indexování, který umožňuje efektivní vyhledávání.
Dotazy fulltextového vyhledávání můžete spouštět bez těchto zásad, ale nepoužívají fulltextový index a můžou využívat více jednotek žádostí (RU). Bez této zásady může spuštění fulltextových vyhledávání trvat i déle. Doporučujeme definovat fulltextové kontejnery a zásady indexu.
Zásady úplného textu
Pro každou textovou vlastnost, kterou chcete nakonfigurovat pro fulltextové vyhledávání, musíte deklarovat jak path vlastnosti s textem, tak language samotného textu. Jednoduchá zásada pro fulltext může být:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text",
"language": "en-US"
}
]
}
Definování více textových cest se snadno provádí přidáním dalšího fullTextPolicy prvku do pole:
{
"defaultLanguage": "en-US",
"fullTextPaths": [
{
"path": "/text1",
"language": "en-US"
},
{
"path": "/text2",
"language": "en-US"
}
]
}
Důležité
Zástupné znaky (*, []) se v současné době nepodporují v zásadách fulltextu ani v indexu fulltextu.
Další informace a příklady nastavení zásad pro fulltextové vyhledávání najdete v ukázkách zásad fulltextového indexování.
Podpora více jazyků
Podpora více jazyků umožňuje indexovat a prohledávat text v jazycích mimo angličtinu. Používá tokenizaci specifickou pro jazyk, stemming a odstranění stopwordů pro přesnější výsledky hledání.
Poznámka:
Podpora více jazyků je v rané verzi Preview. Výkon a kvalita vyhledávání se může lišit od fulltextového vyhledávání v angličtině. Například odebrání stopwordu je v tuto chvíli k dispozici pouze pro angličtinu (en-us). Funkce se můžou měnit vývojem verze Preview.
Fulltextový index
Všechny operace fulltextového vyhledávání by měly používat fulltextový index. Fulltextový index je možné snadno definovat v libovolné zásadě indexu Cosmos DB podle tohoto příkladu:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
}
]
}
Stejně jako u pravidel fulltextového vyhledávání je možné definovat fulltextové indexy pro více cest:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
},
{
"path": "/text2"
}
]
}
Fulltextové vyhledávací dotazy
Operace fulltextového vyhledávání a bodování se provádějí pomocí následujících systémových funkcí v dotazovacím jazyce:
FULLTEXTCONTAINS: Vrátítrue, pokud je daný řetězec obsažen v zadané vlastnosti dokumentu. Tato funkce je užitečná vWHEREklauzuli, pokud chcete zajistit, aby konkrétní klíčová slova byla zahrnuta do dokumentů vrácených dotazem.FULLTEXTCONTAINSALL: Vrátítrue, pokud jsou všechny dané řetězce obsaženy v zadané vlastnosti dokumentu. Tato funkce je užitečná vWHEREklauzuli, pokud chcete zajistit, aby v dokumentech vrácených dotazem bylo zahrnuto více klíčových slov.FULLTEXTCONTAINSANY: Vrátítrue, pokud některý z daných řetězců je obsažen v zadané vlastnosti dokumentu. Tato funkce je užitečná vWHEREklauzuli, pokud chcete zajistit, aby byla v dokumentech vrácených dotazem zahrnuta aspoň jedna z klíčových slov.FULLTEXTSCORE: Tato funkce vORDER BY RANKklauzuli slouží k vrácení dokumentů seřazených podle jejich úplného skóre textu, umístění nejrelevavantnějších (nejvyšších bodování) dokumentů v horní části a nejméně relevantní (nejnižší bodování) v dolní části.
Tady je několik příkladů jednotlivých funkcí, které se používají.
FULLTEXTCONTAINS
V tomto příkladu chceme získat prvních 10 výsledků, kde fráze "červené kolo" je obsažena ve vlastnosti c.text.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red bicycle")
FULLTEXTCONTAINSALL
V tomto příkladu chceme získat prvních 10 výsledků, kde jsou klíčová slova "červená" a "kolo" obsažena ve vlastnosti c.text, ale nemusí být nutně společně.
SELECT TOP 10 *
FROM c
WHERE FULLTEXTCONTAINSALL(c.text, "red", "bicycle")
FULLTEXTCONTAINSANY
V tomto příkladu chceme získat prvních 10 výsledků, kde klíčová slova "červená" a buď "kolo" nebo "skateboard" jsou obsaženy ve vlastnosti c.text.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, "red") AND
FULLTEXTCONTAINSANY(c.text, "bicycle", "skateboard")
FULLTEXTSCORE
V tomto příkladu chceme získat prvních 10 výsledků, kde jsou zahrnuté "hory" a "kolo" a seřazené podle pořadí relevance. To znamená, že dokumenty, které mají tyto termíny častěji, by se měly v seznamu zobrazovat výš.
SELECT TOP 10
*
FROM
container c
ORDER BY RANK
FULLTEXTSCORE(c.text, "bicycle", "mountain")
Důležité
FULLTEXTSCORE lze použít pouze v části ORDER BY RANK a není použitelné v příkazu SELECT nebo v části WHERE.
Vyhledávání přibližných shod
Vyhledávání přibližných shod může zlepšit odolnost proti překlepům a variantám textu. Můžete zadat povolenou "vzdálenost" (počet úprav) mezi hledaným termínem a textem dokumentu, která umožňuje považovat podobné shody za zásah. Maximální vzdálenost, kterou lze zadat, je 2 (dvě úpravy).
Poznámka:
Vyhledávání přibližných shod je v rané verzi Preview. Díky vývoji verze Preview se může změnit výkon, kvalita a funkce.
SELECT TOP 10
*
FROM
container c
WHERE
FULLTEXTCONTAINS(c.text, {"term": "red", "distance":1}, {"term": "bicycle", "distance":2})