Sdílet prostřednictvím


Fulltextové vyhledávání ve službě Azure Cosmos DB for NoSQL (Preview)

Azure Cosmos DB for NoSQL teď nabízí výkonnou funkci fulltextového vyhledávání ve verzi Preview, která je navržená tak, aby zlepšila možnosti vyhledávání vašich aplikací.

Poznámka:

FullTextové a hybridní vyhledávání je v rané verzi Preview a nemusí být v současnosti dostupné ve všech oblastech.

Azure Cosmos DB for NoSQL teď nabízí výkonnou funkci fulltextového vyhledávání ve verzi Preview, která je navržená tak, aby zlepšila možnosti dotazování dat. Tato funkce zahrnuje pokročilé techniky zpracování textu, jako je zastavování, zastavení odebrání slov a tokenizace, povolení efektivního a efektivního 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 nejlepší shoda 25 považuje faktory, jako je frekvence termínů, inverzní frekvence dokumentů a délka dokumentu k určení 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í.
  • 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.

Poznámka:

FullTextové a hybridní vyhledávání (Preview) nemusí být v tuto chvíli dostupné ve všech oblastech.

  1. Povolte funkci fulltextového a hybridního vyhledávání pro NoSQL ve verzi Preview.
  2. Nakonfigurujte kontejner se zásadami fulltextu a fulltextovým indexem.
  3. Vložte data s vlastnostmi textu.
  4. Spusťte hybridní dotazy na data.

Povolení funkce fulltextového a hybridního vyhledávání noSQL ve verzi Preview

Fulltextové vyhledávání, fulltextové bodování a hybridní vyhledávání vyžadují povolení funkce Preview ve vašem účtu Azure Cosmos DB for NoSQL před použitím. Pokud se chcete zaregistrovat, postupujte následovně:

  1. Přejděte na stránku prostředku Azure Cosmos DB for NoSQL.
  2. V položce nabídky Nastavení vyberte podokno Funkce.
  3. Vyberte funkci Fulltextové a hybridní vyhledávání pro rozhraní NOSQL API (Preview).
  4. Přečtěte si popis funkce a potvrďte, že ji chcete povolit.
  5. Výběrem možnosti Povolit zapnete funkci indexování vektorů a vyhledávání.

Snímek obrazovky s funkcí fulltextu a hybridního vyhledávání ve verzi Preview na webu Azure Portal

Pokud chcete použít možnosti fulltextové vyhledávání, musíte nejprve definovat dvě zásady:

  • Zásada fulltextu na úrovni kontejneru, která definuje, jaké cesty budou obsahovat 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í.

Zásady fulltextu

Pro každou textovou vlastnost, kterou chcete nakonfigurovat pro fulltextové vyhledávání, musíte deklarovat path vlastnost textem i language textem. Jednoduché zásady fulltextu můžou 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"
       }
   ]
}

Poznámka:

Angličtina ("en-us" jako jazyk) je v tuto chvíli jediným podporovaným jazykem.

Důležité

Zástupné znaky (*, []) se v současné době nepodporují v zásadách fulltextu ani v indexu fulltextu.

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 Azure Cosmos DB for NoSQL podle následujícího příkladu.

{
    "indexingMode": "consistent",
    "automatic": true,
    "includedPaths": [
        {
            "path": "/*"
        }
    ],
    "excludedPaths": [
        {
            "path": "/\"_etag\"/?"
        },
    ],
    "fullTextIndexes": [
        {
            "path": "/text"
        }
    ]
}

Stejně jako u zásad fulltextu je možné definovat fulltextové indexy na více 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 Azure Cosmos DB for NoSQL:

  • FullTextContains: Vrátí true , pokud je daný řetězec obsažen v zadané vlastnosti dokumentu. To je užitečné v WHERE klauzuli, 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. To je užitečné v WHERE klauzuli, 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. To je užitečné v WHERE klauzuli, pokud chcete zajistit, aby v dokumentech vrácených dotazem obsahovala aspoň jedno z klíčových slov.
  • FullTextScore: Vrátí skóre. To lze použít pouze v ORDER BY RANK klauzuli, kde jsou vrácené dokumenty seřazené podle pořadí fulltextového skóre, s nejrelevavantnějšími (nejvyššími bodovacími) dokumenty nahoře a nejméně relevantními (nejnižšími bodovacími) dokumenty dole.

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 klíčové slovo "kolo" je obsaženo ve vlastnosti c.text.

SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "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.

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 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 c
ORDER BY RANK FullTextScore(c.text, ["bicycle", "mountain"])

Důležité

FullTextScore lze použít pouze v ORDER BY RANK klauzuli a ne v SELECT příkazu nebo v klauzuli WHERE .