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


Index létrehozása az Azure AI Searchben

Ebben a cikkben megismerheti a keresési index sémájának meghatározásának és egy keresési szolgáltatásba való leküldésének lépéseit. Az index létrehozása létrehozza a keresési szolgáltatás fizikai adatstruktúráit. Ha az index létezik, töltse be az indexet külön feladatként.

Előfeltételek

  • Engedélyek írása keresési szolgáltatás közreműködőjeként vagy rendszergazdai API-kulcsként kulcsalapú hitelesítéshez.

  • Az indexelni kívánt adatok ismertetése. A keresési index olyan külső tartalomon alapul, amelyet kereshetővé szeretne tenni. A kereshető tartalmakat a rendszer mezőkként tárolja egy indexben. Tisztában kell lennie azzal, hogy mely forrásmezőket szeretné kereshetővé, lekérthetővé, szűrhetővé, facetable-ként és rendezhetővé tenni (útmutatásért tekintse meg a séma ellenőrzőlistát ).

  • A forrásadatokban egyedi mezőnek is rendelkeznie kell, amely az index dokumentumkulcsaként (vagy azonosítójaként) használható.

  • Stabil indexhely. A meglévő indexek másik keresési szolgáltatásba való áthelyezése nem támogatott. Tekintse át újra az alkalmazáskövetelményeket, és győződjön meg arról, hogy a meglévő keresési szolgáltatás (kapacitás és hely) elegendő az Igényeinek.

  • Végül az összes szolgáltatási szint indexkorlátokkal rendelkezik a létrehozható objektumok számára vonatkozóan. Ha például az ingyenes szinten kísérletezik, egyszerre csak három indexe lehet. Magában az indexben a vektorokra és az indexkorlátokra vonatkozó korlátozások vonatkoznak az egyszerű és összetett mezők számára.

Dokumentumkulcsok

A keresési indexnek két követelménye van: névvel és dokumentumkulcsokkal kell rendelkeznie.

A dokumentumkulcs a keresési dokumentum egyedi azonosítója, a keresődokumentum pedig olyan mezők gyűjteménye, amelyek teljesen leírnak valamit. Ha például egy filmadatkészletet indexel, a keresődokumentum egy film címét, műfaját és időtartamát tartalmazza.

Az Azure AI Searchben a dokumentumkulcsnak sztringnek kell lennie, és az adatforrás azon egyedi értékeiből kell származnia, amelyek az indexelendő tartalmat biztosítják. A keresési szolgáltatás nem hoz létre kulcsértékeket, de bizonyos esetekben (például az Azure-tábla indexelője) szintetizálja a meglévő értékeket, hogy egyedi kulcsot hozzon létre az indexelt dokumentumokhoz.

A növekményes indexelés során, ahol új és frissített tartalom indexelődik, a rendszer új kulcsokkal rendelkező bejövő dokumentumokat ad hozzá, míg a meglévő kulcsokkal rendelkező bejövő dokumentumokat egyesítik vagy felülírják attól függően, hogy az indexmezők null értékűek vagy fel vannak-e töltve.

Séma ellenőrzőlista

Ezzel az ellenőrzőlistával segítheti a keresési indexével kapcsolatos tervezési döntéseit.

  1. Tekintse át az elnevezési konvenciókat, hogy az index- és mezőnevek megfeleljenek az elnevezési szabályoknak.

  2. Nézze át a támogatott adattípusokat. Az adattípus befolyásolja a mező használatának módját. A numerikus tartalom például szűrhető, de teljes szöveges tartalomként nem kereshető. A leggyakoribb adattípus kereshető szöveg esetén a Edm.String, amelynek tokenizálása és lekérdezése a teljes szöveges keresőmotor használatával történik. A vektormezők leggyakoribb adattípusa az, Edm.Single de más típusokat is használhat.

  3. Dokumentumkulcs azonosítása. A dokumentumkulcs indexkövetelmény. Egyetlen sztringmezőt képez, és egy egyedi értékeket tartalmazó forrásadatmezőből van feltöltve. Ha például a Blob Storage-ból indexel, a metaadattár elérési útja gyakran használatos dokumentumkulcsként, mert egyedileg azonosít a tárolóban lévő minden egyes blobot.

  4. Azonosítsa az adatforrás azon mezőit, amelyek kereshető tartalommal járulnak hozzá az indexben.

    A kereshető nem megbízható tartalom rövid vagy hosszú sztringeket tartalmaz, amelyeket a teljes szöveges keresőmotorral kérdeznek le. Ha a tartalom részletes (kis kifejezések vagy nagyobb adattömbök), kísérletezzen különböző elemzőkkel, hogy lássa, hogyan történik a szöveg tokenizálása.

    A kereshető vektortartalmak lehetnek képek vagy szövegek (bármilyen nyelven), amelyek matematikai ábrázolásként léteznek. A vektormezők kicsinyítéséhez keskeny adattípusokat vagy vektortömörítést használhat.

    A mezőattribútum-hozzárendelések a keresési viselkedésmódokat és az index fizikai megjelenítését is meghatározzák a keresési szolgáltatásban. A mezők megadási módjának meghatározása sok ügyfél számára iteratív folyamat. Az iterációk felgyorsítása érdekében kezdjen mintaadatokkal, hogy könnyen eldobhassa és újraépíthesse azokat.

  5. Határozza meg, hogy mely forrásmezők használhatók szűrőkként. A numerikus tartalom és a rövid szövegmezők, különösen az ismétlődő értékekkel rendelkezők jó választást jelentenek. Szűrők használatakor ne feledje:

    • A szűrők vektoros és nem aktoros lekérdezésekben is használhatók, de maga a szűrő alfanumerikus (nemvektor) mezőket alkalmaz az indexben.

    • Szűrhető mezők opionálisan használhatók a jellemzőalapú navigációban.

    • A szűrhető mezőket a rendszer tetszőleges sorrendben adja vissza, ezért érdemes lehet azokat rendezhetővé is tenni.

  6. Vektormezők esetén adja meg a vektorkeresés konfigurációját, valamint a navigációs útvonalak létrehozásához és a beágyazási terület kitöltéséhez használt algoritmusokat. További információ: Vektormezők hozzáadása.

    A vektormezők olyan extra tulajdonságokkal rendelkeznek, amelyekkel a nem meg nem ismerő mezők nem rendelkeznek, például hogy mely algoritmusokat kell használni és vektortömörítést.

    A vektormezők nem hagynak ki olyan attribútumokat, amelyek nem hasznosak a vektoradatokban, például a rendezésben, a szűrésben és a szűrésben.

  7. A nem meg nem használt mezők esetében határozza meg, hogy az alapértelmezett elemzőt ("analyzer": null) vagy egy másik elemzőt használja-e. Az elemzők a szövegmezők tokenizálására szolgálnak az indexelés és a lekérdezés-végrehajtás során.

    Többnyelvű sztringek esetén fontolja meg a nyelvelemző használatát.

    Kötőjeles sztringek vagy speciális karakterek esetén fontolja meg a speciális elemzőket. Ilyen például a kulcsszó , amely egy mező teljes tartalmát egyetlen jogkivonatként kezeli. Ez a viselkedés olyan adatok esetében hasznos, mint az irányítószámok, az azonosítók és néhány terméknév. További információért lásd: Részleges kifejezéskeresés és minták speciális karakterekkel.

Feljegyzés

A teljes szöveges keresés az indexelés során tokenizált kifejezéseken keresztül történik. Ha a lekérdezések nem ják vissza a várt eredményeket, tesztelje a tokenizálást annak ellenőrzéséhez, hogy a keresett sztring valóban létezik-e. A sztringeken különböző elemzőket próbálhat ki, hogy lássa, hogyan jönnek létre a tokenek a különböző elemzők esetében.

Index létrehozása

Ha készen áll az index létrehozására, használjon egy keresési ügyfelet, amely elküldheti a kérést. Az Azure Portalt vagy a REST API-kat használhatja a korai fejlesztéshez és a megvalósíthatósági vizsgálathoz, ellenkező esetben gyakran használják az Azure SDK-kat.

A fejlesztés során tervezze meg a gyakori újraépítéseket. Mivel a fizikai struktúrák a szolgáltatásban jönnek létre, az indexek elvetése és újbóli létrehozása számos módosításhoz szükséges. Érdemes lehet az adatok egy részhalmazával dolgozni, hogy az újraépítések gyorsabbak legyenek.

A portálon keresztüli indextervezés bizonyos adattípusokra vonatkozó követelményeket és sémaszabályokat kényszerít ki, például letiltja a teljes szöveges keresési képességeket a numerikus mezőkön.

  1. Jelentkezzen be az Azure Portalra.

  2. Keressen helyet. Search szolgáltatás az indexek maximális száma függ a szolgáltatási szinttől. Győződjön meg arról, hogy van helye egy második indexnek.

  3. A keresési szolgáltatás áttekintési lapján válassza a keresési indexek létrehozásának egyikét:

    A varázsló egy teljes körű munkafolyamat, amely létrehoz egy indexelőt, egy adatforrást és egy befejezett indexet. Betölti az adatokat is. Ha ez több a kívántnál, használja inkább az Index hozzáadása parancsot.

Az alábbi képernyőkép kiemeli, hogy hol jelenik meg az Index hozzáadása és az Adatok importálása a parancssávon. Az index létrehozása után újra megtalálhatja azt az Indexek lapon.

Index hozzáadása parancs

Tipp.

Miután létrehozott egy indexet a portálon, átmásolhatja a JSON-reprezentációt, és hozzáadhatja az alkalmazás kódjához.

Forrásközi lekérdezések beállítása corsOptions

Az indexsémák tartalmazzák a beállításhoz corsOptionsszükséges szakaszt. Alapértelmezés szerint az ügyféloldali JavaScript nem tud api-kat meghívni, mert a böngészők megakadályozzák az összes forrásközi kérést. Ha engedélyezni szeretné a forrásközi lekérdezéseket az indexen keresztül, engedélyezze a CORS-t (forrásközi erőforrás-megosztást) a corsOptions attribútum beállításával. Biztonsági okokból csak a lekérdezési API-k támogatják a CORS-t.

"corsOptions": {
  "allowedOrigins": [
    "*"
  ],
  "maxAgeInSeconds": 300

A CORS esetében a következő tulajdonságok állíthatók be:

  • allowedOrigins (kötelező): Ez az indexhez hozzáféréssel rendelkező forráskódok listája. Az ilyen forrásból kiszolgált JavaScript-kód lekérdezheti az indexet (feltéve, hogy a hívó érvényes kulcsot biztosít vagy rendelkezik engedélyekkel). Az egyes források általában az űrlapból protocol://<fully-qualified-domain-name>:<port> származnak, de <port> gyakran kihagyják. További információ: Forrásközi erőforrás-megosztás (Wikipédia).

    Ha engedélyezni szeretné az összes forráshoz való hozzáférést, az engedélyezettOrigins tömbben egyetlen elemként szerepeljen*. Ez nem ajánlott eljárás éles keresési szolgáltatásokhoz , de gyakran hasznos a fejlesztéshez és a hibakereséshez.

  • maxAgeInSeconds (nem kötelező): A böngészők ezt az értéket használják a CORS elővizsgálati válaszok gyorsítótárazási időtartamának (másodpercben) meghatározásához. Ennek nem negatív egész számnak kell lennie. A hosszabb gyorsítótárazási időszak jobb teljesítményt nyújt, de meghosszabbítja azt az időtartamot, amelyet a CORS-szabályzatnak érvénybe kell lépnie. Ha ez az érték nincs beállítva, a rendszer az alapértelmezett öt perces időtartamot használja.

Meglévő indexek engedélyezett frissítései

Az Index létrehozása létrehozza a fizikai adatstruktúrákat (fájlokat és fordított indexeket) a keresési szolgáltatásban. Az index létrehozása után az Index létrehozása vagy frissítése funkcióval végrehajtott módosítások attól függenek, hogy a módosítások érvénytelenítenék-e ezeket a fizikai struktúrákat. A legtöbb mezőattribútum nem módosítható, ha a mező létrejött az indexben.

Másik lehetőségként létrehozhat egy index aliast, amely stabil hivatkozásként szolgál az alkalmazáskódban. A kód frissítése helyett frissíthet egy index aliast, hogy az újabb indexverziókra mutasson.

A tervezési folyamat során a változás minimalizálása érdekében az alábbi táblázat ismerteti, hogy mely elemek rögzítettek és rugalmasak a sémában. A rögzített elemek módosítása index-újraépítést igényel, míg a rugalmas elemek bármikor módosíthatók a fizikai megvalósítás befolyásolása nélkül.

Elem Frissíthető?
Név Nem
Kulcs Nem
Mezőnevek és -típusok Nem
Mezőattribútumok (kereshető, szűrhető, facetable, rendezhető) Nem
Mezőattribútum (lekért) Igen
Tárolt (vektorokra vonatkozik) Nem
Elemző Egyéni elemzőket adhat hozzá és módosíthat az indexben. A sztringmezők elemző-hozzárendeléseit illetően csak a módosítást searchAnalyzervégezheti el. Minden más hozzárendeléshez és módosításhoz újra kell építeni.
Pontozási profilok Igen
Javaslattevők Nem
forrásközi erőforrás-megosztás (CORS) Igen
Titkosítás Igen

Következő lépések

Az alábbi hivatkozások segítségével megismerkedhet egy index adatokkal való betöltésével, vagy egy index szinonimák leképezésével való kibővítéséhez.