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.
Cosmos DB v rámci Fabric nabízí výkonnou funkci Full Text Search, která je obecně dostupná. Tato funkce je navržená tak, aby vylepšla nativní možnosti vyhledávání vašich aplikací bez nutnosti externí vyhledávací služby pro základní fulltextové vyhledávání.
Co je fulltextové vyhledávání?
Cosmos DB v rámci Fabric nabízí fulltextové indexování a vyhledávání, které je navrženo pro zlepšení úloh vyhledávání a získávání dat. Tato funkce zahrnuje pokročilé techniky zpracování textu, jako je lematizace, odstranění stop slov a tokenizace, což umožňuje účinné a efektivní 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, neboli Best Matching 25, zohledňuje faktory, jako je frekvence termínů, inverzní frekvence dokumentů a délka dokumentu pro skórování a hodnocení 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í.
Aplikace S více agenty AI: Umožňuje více agentům umělé inteligence spolupracovat na hledání a analýze velkých objemů textových dat, což poskytuje komplexní a nuancované přehledy.
Jak používat fulltextové vyhledávání
Nakonfigurujte kontejner s politikou fulltextu 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 fulltextu na úrovni kontejneru určující, které cesty obsahují text, a které jsou určeny pro nové systémové funkce 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 pro plný text
Pro každou textovou vlastnost, kterou chcete nakonfigurovat pro fulltextové vyhledávání, musíte deklarovat jak path vlastnost s textem, tak language text. Jednoduché zásady pro plný text mohou 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 (*, []) nejsou v současné době podporovány v zásadách plného textu ani v indexu plného textu.
Další informace a příklady nastavení zásad fulltextového indexování najdete v sekci ukázky 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.
Další informace o omezeních souvisejících s podporou více jazyků najdete v tématu Omezení fulltextu ve službě Cosmos DB.
Fulltextový index
Všechny operace fulltextového vyhledávání by měly používat fulltextový index. Fulltextový index lze snadno definovat v libovolném Cosmos DB v zásadách indexu ve službě Fabric na základě tohoto příkladu:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
},
],
"fullTextIndexes": [
{
"path": "/text"
}
]
}
Stejně jako u zásad pro zpracování úplného textu je možné definovat fulltextové indexy na několika cestách:
{
"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 Cosmos DB v prostředí Fabric.
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 podmínce ORDER BY RANK a není projektováno v příkazu SELECT ani v podmínce 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, což umožňuje považovat blízké shody za zásahy. 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})