Indexelő létrehozása az Azure AI Searchben
Ez a cikk az indexelő létrehozásának alapvető lépéseit ismerteti. Az adatforrástól és a munkafolyamattól függően további konfigurációra lehet szükség.
Indexelővel automatizálhatja az adatok importálását és indexelését az Azure AI Searchben. Az indexelő egy névvel ellátott objektum egy keresési szolgáltatásban, amely egy külső Azure-adatforráshoz csatlakozik, adatokat olvas be, és átadja azt egy keresőmotornak indexelés céljából. Az indexelők használata jelentősen csökkenti az írandó kód mennyiségét és összetettségét, ha támogatott adatforrást használ.
Az indexelők két munkafolyamatot támogatnak:
Szövegalapú indexelés: Sztringek és metaadatok kinyerése szöveges tartalomból teljes szöveges keresési forgatókönyvekhez.
Képességalapú indexelés: Beépített vagy egyéni készségek használata, amelyek integrált gépi tanulást adnak hozzá a képek és a nagy, nem differenciált tartalmak elemzéséhez, szöveg és struktúra kinyerése vagy következtetése céljából. A képességalapú indexelés lehetővé teszi a keresést olyan tartalmak között, amelyek egyébként nem könnyen kereshetők teljes szöveges formátumban. További információ: AI-bővítés az Azure AI Searchben.
Előfeltételek
Támogatott adatforrás , amely tartalmazza a betöltendő tartalmat.
Egy indexelő adatforrás , amely külső adatokhoz való kapcsolatot állít be.
Keresési index , amely képes fogadni a bejövő adatokat.
A szolgáltatási szint maximális korlátja alatt kell lennie. Az ingyenes szint három objektumot tesz lehetővé minden típusból, és 1-3 perc indexelőfeldolgozást, illetve 3–10 percet, ha van hozzáértés.
Indexelő minták
Indexelő létrehozásakor a definíció két minta egyike: szövegalapú indexelés vagy képességalapú indexelés. A minták ugyanazok, kivéve, hogy a képességalapú indexelés több definícióval rendelkezik.
Példa indexelő szövegalapú indexelésre
A teljes szöveges keresés szöveges indexelése az indexelők elsődleges használati esete. Ebben a munkafolyamatban egy indexelő az alábbi példához hasonlóan néz ki.
{
"name": (required) String that uniquely identifies the indexer,
"description": (optional),
"dataSourceName": (required) String indicating which existing data source to use,
"targetIndexName": (required) String indicating which existing index to use,
"parameters": {
"batchSize": null,
"maxFailedItems": 0,
"maxFailedItemsPerBatch": 0,
"base64EncodeKeys": false,
"configuration": {}
},
"fieldMappings": (optional) unless field discrepancies need resolution,
"disabled": null,
"schedule": null,
"encryptionKey": null
}
Az indexelőkre a következő követelmények vonatkoznak:
- Olyan
name
tulajdonság, amely egyedileg azonosítja az indexelőt az indexelő gyűjteményében - Egy
dataSourceName
adatforrás-objektumra mutató tulajdonság. Külső adatokhoz való kapcsolatot ad meg - A
targetIndexName
célkeresési indexre mutató tulajdonság
Más paraméterek nem kötelezőek, és módosíthatják a futási idő viselkedését, például azt, hogy hány hibát kell elfogadni, mielőtt a teljes feladat meghiúsulna. A szükséges paraméterek minden indexelőben meg vannak adva, és a REST API-referencia dokumentálja.
A blobokhoz, AZ SQL-hez és az Azure Cosmos DB-hez készült adatforrás-specifikus indexelők további configuration
paramétereket biztosítanak a forrásspecifikus viselkedésekhez. Ha például a forrás a Blob Storage, beállíthat egy olyan paramétert, amely a fájlkiterjesztésekre szűr, például:
"parameters" : { "configuration" : { "indexedFileNameExtensions" : ".pdf,.docx" } }
Ha a forrás az Azure SQL, beállíthatja a lekérdezés időtúllépési paraméterét.
A mezőleképezések a forrás–cél mezők explicit leképezésére szolgálnak, ha név vagy típus szerinti eltérés van az adatforrás és a keresési index egy mezője között.
Alapértelmezés szerint az indexelő azonnal fut, amikor létrehozza a keresési szolgáltatásban. Ha nem szeretné az indexelő végrehajtását, állítsa disabled
igaz értékre az indexelő létrehozásakor.
Az indexelő definíciójának kiegészítő titkosításához ütemezést vagy titkosítási kulcsot is megadhat.
Indexelő példa a képességalapú indexeléshez
A képességalapú indexelés AI-bővítést használ a nyers formában nem kereshető tartalmak feldolgozásához. A fenti tulajdonságok és paraméterek mindegyike érvényes, de a következő további tulajdonságok az AI-bővítésre vonatkoznak: skillSetName
, , cache
outputFieldMappings
.
{
"name": (required) String that uniquely identifies the indexer,
"dataSourceName": (required) String, provides raw content that will be enriched,
"targetIndexName": (required) String, name of an existing index,
"skillsetName" : (required for AI enrichment) String, name of an existing skillset,
"cache": {
"storageConnectionString" : (required if you enable the cache) Connection string to a blob container,
"enableReprocessing": true
},
"parameters": { },
"fieldMappings": (optional) Maps fields in the underlying data source to fields in an index,
"outputFieldMappings" : (required) Maps skill outputs to fields in an index,
}
Az AI-bővítés a saját területe, és nem terjed ki erre a cikkre. További információkért kezdje az AI-bővítéssel, az Azure AI Search képességkészleteivel, a képességkészlet létrehozásával, a bővített kimeneti mezők leképezésével és az AI-bővítés gyorsítótárazásának engedélyezésével.
Külső adatok előkészítése
Az indexelők adatkészletekkel dolgoznak. Amikor indexelőt futtat, az csatlakozik az adatforráshoz, lekéri az adatokat a tárolóból vagy a mappából, opcionálisan szerializálja őket a JSON-ba, mielőtt átadja azokat a keresőmotornak indexelés céljából. Ez a szakasz a szöveges indexelés bejövő adatainak követelményeit ismerteti.
Forrásadatok | Tevékenységek |
---|---|
JSON-dokumentumok | Győződjön meg arról, hogy a bejövő adatok szerkezete vagy alakja megfelel a keresési index sémájának. A legtöbb keresési index meglehetősen lapos, ahol a mezőgyűjtemény azonos szintű mezőkből áll. A hierarchikus vagy beágyazott struktúrák azonban összetett mezőkön és gyűjteményeken keresztül is lehetségesek. |
Relációs | Adjon meg adatokat lapított sorkészletként, ahol minden sor teljes vagy részleges keresési dokumentum lesz az indexben. A relációs adatok sorkészletbe való összesimításához létre kell hoznia egy SQL-nézetet, vagy létre kell hoznia egy olyan lekérdezést, amely szülő- és gyermekrekordokat ad vissza ugyanabban a sorban. A beépített szállodák mintaadatkészlete például egy SQL-adatbázis, amely 50 rekordot tartalmaz (minden szállodához egyet), amelyek egy kapcsolódó tábla helyiségrekordjaihoz vannak csatolva. Az a lekérdezés, amely a csoportos adatokat egy sorhalmazba alakítja, beágyazza az összes szobainformációt JSON-dokumentumokba minden szállodarekordba. A beágyazott helyiség információi egy FOR JSON AUTO záradékot használó lekérdezésből jönnek létre. Erről a technikáról a beágyazott JSON-t visszaadó lekérdezések definiálása során tudhat meg többet. Ez csak egy példa; más megközelítéseket is találhat, amelyek ugyanazt az eredményt eredményezik. |
Fájlok | Az indexelők általában minden fájlhoz létrehoznak egy keresési dokumentumot, ahol a keresési dokumentum tartalom- és metaadatok mezőiből áll. A fájltípustól függően az indexelő néha több keresési dokumentumba is elemezhet egy fájlt. Egy CSV-fájlban például minden sor önálló keresési dokumentummá válhat. |
Ne feledje, hogy csak kereshető és szűrhető adatokat kell lekérnie:
- A kereshető adatok szövegesek
- A szűrhető adatok alfanumerikusak
Az Azure AI Search semmilyen formátumban nem tud bináris adatokat keresni, de képes kinyerni és kikövetkeztetni a képfájlok szöveges leírását (lásd az AI-bővítést) a kereshető tartalom létrehozásához. Hasonlóképpen, a nagyméretű szövegeket természetes nyelvi modellek is lebonthatják és elemezhetik a szerkezet vagy a releváns információk megkereséséhez, és új tartalmakat hozhatnak létre, amelyeket hozzáadhat egy keresési dokumentumhoz.
Mivel az indexelők nem oldják meg az adatproblémákat, az adattisztítás vagy -kezelés egyéb formáira is szükség lehet. További információkért tekintse meg az Azure-adatbázis termékdokumentációját.
Adatforrás előkészítése
Az indexelőknek olyan adatforrásra van szükségük, amely meghatározza a típust, a tárolót és a kapcsolatot.
Győződjön meg arról, hogy támogatott adatforrástípust használ.
Adatforrásdefiníció létrehozása. A leggyakrabban használt források közül az alábbi adatforrások találhatók:
Ha az adatforrás egy adatbázis, például az Azure SQL vagy a Cosmos DB, engedélyezze a változáskövetést. Az Azure Storage beépített változáskövetéssel rendelkezik a tulajdonságon keresztül minden
LastModified
blobon, fájlon és táblán. A különböző adatforrások hivatkozásai ismertetik, hogy az indexelők mely változáskövetési módszereket támogatják.
Index előkészítése
Az indexelőknek keresési indexre is szükségük van. Ne feledje, hogy az indexelők adatokat adnak át a keresőmotornak indexelés céljából. Ahogyan az indexelők olyan tulajdonságokkal rendelkeznek, amelyek meghatározzák a végrehajtási viselkedést, az indexséma olyan tulajdonságokkal rendelkezik, amelyek jelentősen befolyásolják a sztringek indexelt állapotát (csak a sztringek elemzése és tokenizálása).
Első lépésként hozzon létre egy keresési indexet.
A mezők gyűjteményének és mezőattribútumainak beállítása.
A mezők a külső tartalom egyetlen receptorai. Attól függően, hogy a mezők hogyan vannak attribútummal elosztva a sémában, az egyes mezők értékeit a rendszer szó szerinti sztringekként elemzi, tokenizálja vagy tárolja a szűrők, a homályos keresés és a típusfejes lekérdezések esetében.
Az indexelők automatikusan leképezik a forrásmezőket a célindexmezőkre, ha a nevek és a típusok egyenértékűek. Ha egy mezőt nem lehet implicit módon leképezni, ne feledje, hogy definiálhat egy explicit mezőleképezést , amely tájékoztatja az indexelőt a tartalom átirányításáról.
Tekintse át az elemző-hozzárendeléseket az egyes mezőkben. Az elemzők átalakíthatják a sztringeket. Így az indexelt sztringek eltérhetnek az átadott sztringektől. Az elemzők hatását a Szövegelemzés (REST) használatával értékelheti ki. Az elemzőkről további információt a szövegfeldolgozás elemzői című témakörben talál.
Az indexelés során az indexelők csak a mezőneveket és a típusokat ellenőrzik. Nincs olyan érvényesítési lépés, amely biztosíthatja, hogy a bejövő tartalom helyes legyen az index megfelelő keresőmezőjében.
Indexelő létrehozása
Ha készen áll egy indexelő létrehozására egy távoli keresési szolgáltatásban, szüksége lesz egy keresési ügyfélre. A keresési ügyfél lehet az Azure Portal, egy REST-ügyfél vagy egy indexelő ügyfelet példányosító kód. Az Azure Portalt vagy REST API-kat javasoljuk a korai fejlesztéshez és a megvalósíthatósági vizsgálathoz.
Jelentkezzen be az Azure Portalra, és keresse meg a keresési szolgáltatást.
A keresési szolgáltatás áttekintési oldalán válasszon két lehetőség közül:
Adatimportálás varázsló: A varázsló egyedi abban az esetben, ha az összes szükséges elemet létrehozza. Más megközelítésekhez előre definiált adatforrásra és indexre van szükség.
Indexelő hozzáadása: Egy indexelő definíciójának megadására szolgáló vizualizációszerkesztő.
Az indexelő futtatása
Alapértelmezés szerint az indexelő azonnal fut, amikor létrehozza a keresési szolgáltatásban. Ezt a viselkedést felülbírálhatja az indexelő definíciójában igaz értékre állítássaldisabled
. Az indexelő végrehajtása az igazság pillanata, ahol megtudhatja, hogy problémák merülnek-e fel a kapcsolatok, a mezőleképezések vagy a képességkészletek felépítésével kapcsolatban.
Az indexelők többféleképpen is futtathatók:
Futtassa az indexelő létrehozását vagy frissítését (alapértelmezett).
Futtassa igény szerint, ha nincs módosítás a definícióban, vagy a teljes indexelés visszaállítása előtt. További információ: Indexelők futtatása vagy alaphelyzetbe állítása.
Ütemezze az indexelő feldolgozását , hogy rendszeres időközönként meghívja a végrehajtást.
Az ütemezett végrehajtás általában akkor implementálódik, ha növekményes indexelésre van szüksége, hogy a legújabb módosításokat is átvehesse. Így az ütemezés függ a változásészleléshez.
Az indexelők azon kevés alrendszerek egyike, amelyek kimenő kimenő hívásokat intéznek más Azure-erőforrásokhoz. Az Azure-szerepkörök tekintetében az indexelők nem rendelkeznek külön identitásokkal; a keresőmotor és egy másik Azure-erőforrás közötti kapcsolat a keresési szolgáltatás rendszerével vagy felhasználó által hozzárendelt felügyelt identitásával jön létre. Ha az indexelő egy virtuális hálózaton lévő Azure-erőforráshoz csatlakozik, akkor létre kell hoznia egy megosztott privát kapcsolatot ehhez a kapcsolathoz. További információ a biztonságos kapcsolatokról: Biztonság az Azure AI Searchben.
Eredmények ellenőrzése
Az indexelő állapotának figyelése az állapot ellenőrzéséhez. A sikeres végrehajtás továbbra is tartalmazhat figyelmeztetést és értesítéseket. Győződjön meg arról, hogy a feladat részleteiért ellenőrizze a sikeres és a sikertelen állapotértesítéseket is.
Tartalom-ellenőrzéshez futtasson lekérdezéseket a kitöltött indexen, amely teljes dokumentumokat vagy kijelölt mezőket ad vissza.
Változásészlelés és belső állapot
Ha az adatforrás támogatja a változásészlelést, az indexelő képes észlelni az adatok mögöttes változásait, és csak az egyes indexelők új vagy frissített dokumentumait dolgozza fel, változatlan tartalmat hagyva. Ha az indexelőzmények szerint a futtatás sikeres volt a 0/0-s dokumentumok feldolgozásával, az azt jelenti, hogy az indexelő nem talált új vagy módosított sorokat vagy blobokat a mögöttes adatforrásban.
A változásészlelési logika be van építve az adatplatformokba. Hogy az indexelő hogyan támogatja a változásészlelést, az adatforrásonként eltérő:
Az Azure Storage beépített változásészleléssel rendelkezik, ami azt jelenti, hogy az indexelők automatikusan felismerhetik az új és frissített dokumentumokat. A Blob Storage, az Azure Table Storage és az Azure Data Lake Storage Gen2 minden blob- vagy sorfrissítést dátummal és időponttal jelöl meg. Az indexelők automatikusan ezt az információt használják annak meghatározására, hogy mely dokumentumok frissüljenek az indexben. A törlésészlelésről további információt az Azure Storage indexelőivel végzett módosítás és törlésészlelés című témakörben talál.
A felhőalapú adatbázis-technológiák opcionális változásészlelési funkciókat biztosítanak a platformjaikon. Ezen adatforrások esetében a változásészlelés nem automatikus. Az adatforrás definíciójában meg kell adnia, hogy melyik szabályzatot használja:
Az indexelők nyomon követik az adatforrásból feldolgozott utolsó dokumentumot egy belső magas vízjelen keresztül. A jelölő soha nem jelenik meg az API-ban, de belsőleg az indexelő nyomon követi, hogy hol állt le. Amikor az indexelés folytatódik, akár ütemezett futtatás, akár igény szerinti meghívás útján, az indexelő a magas vízjelre hivatkozik, hogy ott folytassa, ahol abbahagyta.
Ha törölnie kell a magas vízjelet a teljes újraindexeléshez, használhatja az Indexelő alaphelyzetbe állítását. A szelektívebb újraindexeléshez használja az Alaphelyzetbe állítási készségeket vagy a Dokumentumok alaphelyzetbe állítását. Az alaphelyzetbe állítási API-k segítségével törölheti a belső állapotot, és kiürítheti a gyorsítótárat is, ha engedélyezte a növekményes bővítést. Az egyes visszaállítási beállítások hátteréről és összehasonlításáról további információt az indexelők, a készségek és a dokumentumok futtatása vagy alaphelyzetbe állítása című témakörben talál.