Megosztás a következőn keresztül:


Teljes szöveges keresés az Azure Cosmos DB for NoSQL-ben (előzetes verzió)

Az Azure Cosmos DB for NoSQL mostantól előzetes verzióban kínál egy hatékony teljes szöveges keresési funkciót, amelyet az alkalmazások keresési képességeinek javítására terveztek.

Feljegyzés

A Teljes szöveg > Hibrid keresés előzetes verzióban érhető el, és jelenleg nem minden régióban érhető el.

Az Azure Cosmos DB for NoSQL mostantól előzetes verzióban kínál egy hatékony teljes szöveges keresési funkciót, amelyet az adatmegkérdezési képességek javítására terveztek. Ez a funkció olyan speciális szövegfeldolgozási technikákat is tartalmaz, mint a szóleválasztás, a szóeltávolítás leállítása és a jogkivonat-készítés, amely lehetővé teszi a hatékony és hatékony szövegkeresést egy speciális szövegindexen keresztül. A teljes szöveges keresés teljes szöveges pontozást is tartalmaz egy olyan függvénnyel, amely kiértékeli a dokumentumok relevanciáját egy adott keresési lekérdezésben. A BM25 vagy a Best Matching 25 olyan tényezőket tekint, mint a kifejezés gyakorisága, az inverz dokumentum gyakorisága és a dokumentumok hossza a dokumentumok pontszámához és rangsorolásához. Ez segít biztosítani, hogy a legrelevánsabb dokumentumok megjelenjenek a keresési eredmények tetején, ezáltal javítva a szöveges keresések pontosságát és hasznosságát.

A Teljes szöveges keresés számos forgatókönyvhöz ideális, többek között a következőkhöz:

  • E-kereskedelem: Gyorsan megtalálhatja a termékeket leírások, vélemények és egyéb szöveges attribútumok alapján.
  • Tartalomkezelés: Hatékonyan kereshet cikkeket, blogokat és dokumentumokat.
  • Ügyfélszolgálat: A vonatkozó támogatási jegyek, gyakori kérdések és tudásbázis cikkek lekérése.
  • Felhasználói tartalom: Felhasználó által létrehozott tartalmak, például bejegyzések és megjegyzések elemzése és keresése.
  • RAG a csevegőrobotok számára: A csevegőrobot válaszainak javítása a releváns információk nagy szöveges korpuszból való lekérésével, a válaszok pontosságának és relevanciájának növelésével.
  • Többügynökön alapuló AI-alkalmazások: Lehetővé teszi, hogy több AI-ügynök közösen keressen és elemezzen hatalmas mennyiségű szöveges adatot, átfogó és árnyalt elemzéseket biztosítva.

Feljegyzés

Előfordulhat, hogy a Teljes szöveg > Hibrid keresés (előzetes verzió) jelenleg nem érhető el minden régióban.

  1. Engedélyezze a "Full Text & Hybrid Search for NoSQL" előzetes verziójú funkciót.
  2. Konfiguráljon egy tárolót teljes szöveges szabályzattal és teljes szöveges indexkel.
  3. Szúrja be az adatokat szövegtulajdonságokkal.
  4. Hibrid lekérdezések futtatása az adatokon.

A NoSQL előzetes verziójának teljes szöveges és hibrid keresésének engedélyezése

A teljes szöveges kereséshez, a teljes szöveges pontozáshoz és a hibrid kereséshez a használat előtt engedélyezni kell az előzetes verziójú funkciót az Azure Cosmos DB for NoSQL-fiókban. A regisztrációhoz kövesse az alábbi lépéseket:

  1. Lépjen az Azure Cosmos DB for NoSQL erőforráslapjára.
  2. Válassza a "Szolgáltatások" panelt a "Beállítások" menüelem alatt.
  3. Válassza a "Full-Text & Hybrid Search for NoSQL API (előzetes verzió)" funkciót.
  4. Olvassa el a funkció leírását, és győződjön meg arról, hogy engedélyezni szeretné.
  5. Válassza az "Engedélyezés" lehetőséget a vektorindexelés és a keresési képesség bekapcsolásához.

Képernyőkép az Azure Portal teljes szöveges és hibrid keresési előnézeti funkciójáról.

A teljes szöveges keresési képességek használatához először két szabályzatot kell meghatároznia:

  • Tárolószintű teljes szöveges szabályzat, amely meghatározza, hogy milyen elérési utak tartalmaznak szöveget az új teljes szöveges lekérdezési rendszerfüggvényekhez.
  • Az indexelési szabályzathoz hozzáadott teljes szöveges index, amely lehetővé teszi a hatékony keresést.

Teljes szöveges szabályzat

A teljes szöveges kereséshez konfigurálni kívánt összes szöveges tulajdonság esetében deklarálnia kell a path tulajdonságot szöveggel és szöveggel language . Egy egyszerű teljes szöveges szabályzat a következő lehet:

{
   "defaultLanguage": "en-US",
   "fullTextPaths": [
       {
           "path": "/text",
           "language": "en-US"
       }
   ]
}

Több szöveges elérési út definiálása egyszerűen elvégezhető úgy, hogy egy másik elemet ad hozzá a fullTextPolicy tömbhöz:

{
   "defaultLanguage": "en-US",
   "fullTextPaths": [
       {
           "path": "/text1",
           "language": "en-US"
       },
       {
           "path": "/text2",
           "language": "en-US"
       }
   ]
}

Feljegyzés

Jelenleg az angol ("en-us" mint nyelv) az egyetlen támogatott nyelv.

Fontos

A helyettesítő karakterek (*, []) jelenleg nem támogatottak a teljes szöveges szabályzatban vagy a teljes szöveges indexben.

Teljes szöveges index

Minden teljes szöveges keresési műveletnek teljes szöveges indexet kell használnia. Az alábbi példában egy teljes szöveges index egyszerűen definiálható bármely Azure Cosmos DB for NoSQL-indexszabályzatban.

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

A teljes szöveges szabályzatokhoz hasonlóan a teljes szöveges indexek több útvonalon is definiálhatók.

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

Teljes szöveges keresési lekérdezések

A teljes szöveges keresési és pontozási műveleteket az alábbi rendszerfüggvények használatával hajtjuk végre az Azure Cosmos DB for NoSQL lekérdezési nyelvében:

  • FullTextContains: Visszaadja true , ha egy adott sztring szerepel egy dokumentum megadott tulajdonságában. Ez akkor hasznos egy WHERE záradékban, ha meg szeretné győződni arról, hogy bizonyos kulcsszavak szerepelnek a lekérdezés által visszaadott dokumentumokban.
  • FullTextContainsAll: Akkor adja true vissza, ha az összes megadott sztring egy dokumentum megadott tulajdonságában található. Ez akkor hasznos egy WHERE záradékban, ha azt szeretné, hogy a lekérdezés által visszaadott dokumentumok több kulcsszót is tartalmazzanak.
  • FullTextContainsAny: Azt adja true vissza, hogy az adott sztringek bármelyike szerepel-e egy dokumentum megadott tulajdonságában. Ez akkor hasznos egy WHERE záradékban, ha biztosítani szeretné, hogy a lekérdezés által visszaadott dokumentumok legalább az egyik kulcsszót tartalmazzák.
  • FullTextScore: Egy pontszámot ad vissza. Ez csak olyan ORDER BY RANK záradékban használható, amelyben a visszaadott dokumentumokat a teljes szöveges pontszám rangja rendezi, felül a legrelevánsabb (legmagasabb pontszámú) dokumentumok, alul pedig a legkevésbé releváns (legalacsonyabb pontszámú) dokumentumok.

Íme néhány példa az egyes használatban lévő függvényekre.

FullTextContains

Ebben a példában az első 10 találatot szeretnénk megszerezni, ahol a "kerékpár" kulcsszó szerepel a tulajdonságban c.text.

SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "bicycle")

FullTextContainsAll

Ebben a példában az első 10 találatot szeretnénk megszerezni, ahol a "piros" és a "kerékpár" kulcsszó szerepel a tulajdonságban c.text.

SELECT TOP 10 *
FROM c
WHERE FullTextContainsAll(c.text, "red", "bicycle")

FullTextContainsAny

Ebben a példában az első 10 találatot szeretnénk megszerezni, ahol a "piros" és a "kerékpár" vagy a "gördeszka" kulcsszavak szerepelnek a tulajdonságban c.text.

SELECT TOP 10 *
FROM c
WHERE FullTextContains(c.text, "red") AND FullTextContainsAny(c.text, "bicycle", "skateboard")

FullTextScore

Ebben a példában az első 10 olyan eredményt szeretnénk elérni, ahol a "hegy" és a "kerékpár" szerepel, és a relevancia szerinti sorrend szerint van rendezve. Vagyis az ilyen kifejezéseket tartalmazó dokumentumoknak gyakrabban kell megjelenniük a listában.

SELECT TOP 10 *
FROM c
ORDER BY RANK FullTextScore(c.text, ["bicycle", "mountain"])

Fontos

A FullTextScore csak a ORDER BY RANK záradékban használható, és nem vetítve az SELECT utasításban vagy záradékban WHERE .