Indexelő létrehozása az Azure AI Searchben

Indexelő használatával 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öveges 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égekkel, amelyek integrált gépi tanulást adnak hozzá képek és 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.

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.

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 percnyi indexelőfeldolgozást, vagy 3–10-et, ha van egy képességkészlet.

Indexelő minták

Indexelő létrehozásakor a definíció két minta egyike: szövegalapú indexelés vagy AI-bővítés készségekkel. 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, és ebben a munkafolyamatban az 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ényben.
  • 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 paramétert, amely a fájlkiterjesztésekre szűr: "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

Az indexelők az AI-bővítést is hajtják. A fenti tulajdonságok és paraméterek mindegyike alkalmazható, de a következő további tulajdonságok a mi-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észletek létrehozásával, a bővítési kimeneti mezők leképezésével és a gyorsítótárazás engedélyezésével az AI-bővítéshez.

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 Adja meg 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övegnek számítanak.
  • 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.

  1. Győződjön meg arról, hogy támogatott adatforrástípust használ.

  2. Adatforrásdefiníció létrehozása. Az alábbi lista a leggyakrabban használt adatforrások közül néhányat tartalmazza:

  3. 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 fenti 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).

  1. Első lépésként hozzon létre egy keresési indexet.

  2. 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.

  3. 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.

  1. Jelentkezzen be az Azure Portalra.

  2. 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ó abban egyedi, hogy 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.

    • Új Indexelő, egy indexelődefiníció megadására szolgáló vizualizációszerkesztő.

    Az alábbi képernyőképen látható, hogy hol találhatók ezek a funkciók a portálon.

    hotels indexer

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ással "disabled" . 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 egy 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. A biztonságos kapcsolatokkal kapcsolatos további információkért tekintse meg az Azure AI Search biztonságával foglalkozó témakört.

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 feldolgozott dokumentumok esetében 0/0 , 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 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.

Következő lépések