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


Indexelők, készségek vagy dokumentumok futtatása vagy alaphelyzetbe állítása

Az Azure AI Searchben többféleképpen is futtathat indexelőt:

Ez a cikk azt ismerteti, hogyan futtathat igény szerinti indexelőket alaphelyzetbe állítással és anélkül. Az indexelő végrehajtását, időtartamát és egyidejűségét is ismerteti.

Hogyan csatlakoznak az indexelők az Azure-erőforrásokhoz?

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.

Indexelő végrehajtása

A keresési szolgáltatás keresési egységenként egy indexelő feladatot futtat. Minden keresési szolgáltatás egy keresési egységgel kezdődik, de minden új partíció vagy replika növeli a szolgáltatás keresési egységeit. A keresési egységek számát az Áttekintés lap alapvető szakaszában tekintheti meg. Ha egyidejű feldolgozásra van szüksége, győződjön meg arról, hogy a keresési egységek elegendő replikát tartalmaznak. Az indexelők nem futnak a háttérben, ezért a szokásosnál több lekérdezésszabályozást észlelhet, ha a szolgáltatás nyomás alatt áll.

Az alábbi képernyőképen a keresési egységek száma látható, amely meghatározza, hogy hány indexelő futtatható egyszerre.

Képernyőkép az áttekintési oldal alapvető fontosságú szakaszáról, amelyen a keresési egységek láthatók.

Az indexelő végrehajtásának elindítása után nem szüneteltetheti és nem állíthatja le. Az indexelő végrehajtása leáll, ha nincs több betöltendő vagy frissítendő dokumentum, vagy ha eléri a maximális futási időkorlátot .

Egyszerre több indexelőt is futtathat elegendő kapacitást feltételezve, de maga az indexelő egypéldányos. Ha egy új példányt indít el, miközben az indexelő már végrehajtás alatt áll, a következő hibaüzenet jelenik meg: "Failed to run indexer "<indexer name>" error: "Another indexer invocation is currently in progress; concurrent invocations are not allowed."

Az indexelőfeladat felügyelt végrehajtási környezetben fut. Jelenleg két környezet létezik:

  • A privát végrehajtási környezet a keresési szolgáltatásra jellemző keresési fürtökön fut. Ha a keresési szolgáltatás Standard2 vagy Nigher, beállíthatja, hogy az executionEnvironment indexelő definíciójában szereplő paraméter mindig futtasson indexelőt a privát végrehajtási környezetben.

  • A több-bérlős környezetek olyan tartalomfeldolgozókkal rendelkeznek, amelyeket a Microsoft felügyel és véd extra költségek nélkül. Ez a környezet a számítási igényes feldolgozás kiszervezésére szolgál, így szolgáltatásspecifikus erőforrások állnak rendelkezésre a rutinműveletek számára. Amikor csak lehetséges, a legtöbb készségkészlet a több-bérlős környezetben fut. Ez az alapértelmezett beállítás.

    A számítási igényes feldolgozás magában foglalja a tartalomfeldolgozókon futó képességkészleteket, valamint a nagy mennyiségű indexelő vagy nagy dokumentumokkal rendelkező indexelő feladatokat. A több-bérlős tartalomfeldolgozók nem készségalapú feldolgozását a huerisztika és a rendszerinformációk határozzák meg, és nem az ügyfél ellenőrzése alatt áll. Az S2-szolgáltatások és a magasabb szintű támogatás az indexelő és a készségkészlet feldolgozásának rögzítését kizárólag a keresési fürtökre rögzíti a executionEnvironment paraméteren keresztül.

    Feljegyzés

    Az IP-tűzfalak blokkolják a több-bérlős környezetet, ezért ha rendelkezik tűzfallal, hozzon létre egy szabályt, amely lehetővé teszi a több-bérlős feldolgozást.

Az indexelők korlátai az egyes környezetekben eltérőek:

Számítási feladat Maximális időtartam Feladatok maximális száma Végrehajtási környezet
Privát végrehajtás 24 óra 1. keresési egységenként egy indexelő feladat. Az indexelés nem fut a háttérben. Ehelyett a keresési szolgáltatás az összes indexelési feladatot kiegyensúlyozni fogja a folyamatban lévő lekérdezésekkel és objektumkezelési műveletekkel (például indexek létrehozásával vagy frissítésével). Indexelők futtatásakor a lekérdezés késésére kell számítania, ha az indexelési kötetek nagyok.
Több-bérlős architektúra 2 óra 2 Határozatlan 3 Mivel a tartalomfeldolgozó fürt több-bérlős, a rendszer tartalomfeldolgozókat ad hozzá az igények kielégítéséhez. Ha késést tapasztal az igény szerinti vagy ütemezett végrehajtásban, az valószínűleg azért van, mert a rendszer processzorokat ad hozzá, vagy arra vár, hogy elérhetővé váljon.

1 A keresési egységek lehetnek partíciók és replikák rugalmas kombinációi , de az indexelő feladatok nincsenek egyikhez vagy a másikhoz kötve. Más szóval, ha 12 egységgel rendelkezik, 12 indexelő feladat futhat egyidejűleg privát végrehajtásban, függetlenül attól, hogy a keresési egységek hogyan vannak üzembe helyezve.

2 Ha az összes adat feldolgozásához több mint két órára van szükség, engedélyezze a változásészlelést, és ütemezze, hogy az indexelő 5 perces időközönként fusson az indexelés gyors folytatásához, ha időtúllépés miatt leáll. További stratégiákért lásd : Nagy adatkészlet indexelése.

3 "Határozatlan" azt jelenti, hogy a korlátot nem számszerűsíti a feladatok száma. Egyes számítási feladatok, például a készségek feldolgozása párhuzamosan is futtathatók, ami sok feladatot eredményezhet, még ha csak egy indexelő is részt vesz benne. Bár a környezet nem ír elő korlátozásokat, a keresési szolgáltatás indexelőkorlátai továbbra is érvényesek.

Futtatás alaphelyzetbe állítás nélkül

Az Indexelő futtatása művelet csak azt észleli és dolgozza fel, ami a keresési index és a mögöttes adatforrás változásainak szinkronizálásához szükséges. A növekményes indexelés egy belső magas vízjellel kezdődik, amely megkeresi az utolsó frissített keresési dokumentumot, amely az indexelők végrehajtásának kiindulópontja lesz az adatforrás új és frissített dokumentumai felett.

A változásészlelés alapvető fontosságú az adatforrás újdonságainak vagy frissítésének meghatározásához. Az indexelők a mögöttes adatforrás változásészlelési képességeivel határozzák meg az adatforrás újdonságait vagy frissítéseit.

  • Az Azure Storage beépített változásészlelést alkalmaz a LastModified tulajdonságán keresztül.

  • Más adatforrásokat, például az Azure SQL-t vagy az Azure Cosmos DB-t is konfigurálni kell a változásészleléshez, mielőtt az indexelő beolvassa az új és frissített sorokat.

Ha a mögöttes tartalom nem változik, a futtatási műveletnek nincs hatása. Ebben az esetben az indexelőzmények a feldolgozott dokumentumokat jelölik 0\0 .

A teljes újrafeldolgozáshoz alaphelyzetbe kell állítania az indexelőt a következő szakaszban leírtak szerint.

Indexelők alaphelyzetbe állítása

A kezdeti futtatás után az indexelő nyomon követi, hogy mely keresési dokumentumokat indexelték egy belső magas vízjelen keresztül. A jelölő soha nem lesz látható, de belsőleg az indexelő tudja, hol állt le utoljára.

Ha egy index egészét vagy egy részét újra kell építenie, alaphelyzetbe állítással törölheti az indexelő magas vízjelét. A visszaállítási API-k az objektumhierarchiában csökkenő szinten érhetők el:

Az alaphelyzetbe állítás után kövesse a Futtatás parancsot az új és a meglévő dokumentumok újrafeldolgozásához. Az árva keresési dokumentumok, amelyeknek nincs megfelelője az adatforrásban, nem távolíthatók el alaphelyzetbe állítással/futtatással. Ha törölnie kell a dokumentumokat, olvassa el a Dokumentumok – Index című témakört.

Indexelők alaphelyzetbe állítása és futtatása

Az alaphelyzetbe állítás törli a magas vízjelet. A keresési indexben lévő összes dokumentum teljes felülírás céljából lesz megjelölve, beágyazott frissítések és meglévő tartalmak egyesítése nélkül. A képességkészlettel és bővítési gyorsítótárazással rendelkező indexelők esetében az index alaphelyzetbe állítása implicit módon alaphelyzetbe állítja a képességkészletet is.

A tényleges munka akkor következik be, ha futtatási paranccsal végez alaphelyzetbe állítást:

  • Minden új dokumentum, amely a mögöttes forrást megtalálta, hozzáadódik a keresési indexhez.
  • Az adatforrásban és a keresési indexben található összes dokumentum felülíródik a keresési indexben.
  • A készségkészletekből létrehozott összes tartalom újraépül. Ha engedélyezve van, a bővítési gyorsítótár frissül.

Ahogy korábban már említettük, az alaphelyzetbe állítás passzív művelet: az index újraépítéséhez egy futtatási kérést kell követnie.

Az alaphelyzetbe állítási/futtatási műveletek keresési indexre vagy tudástárra, adott dokumentumokra vagy előrejelzésekre, valamint gyorsítótárazott bővítésekre vonatkoznak, ha az alaphelyzetbe állítás explicit vagy implicit módon magában foglalja a készségeket.

Az alaphelyzetbe állítás a létrehozási és frissítési műveletekre is vonatkozik. Nem indítja el az árva dokumentumok törlését vagy törlését a keresési indexben. A dokumentumok törléséről további információt a Dokumentumok – Index című témakörben talál.

Az indexelő alaphelyzetbe állítása után nem vonhatja vissza a műveletet.

  1. Jelentkezzen be az Azure Portalra , és nyissa meg a keresési szolgáltatás oldalát.

  2. Az Áttekintés lapon válassza az Indexelők lapot.

  3. Jelöljön ki egy indexelőt.

  4. Válassza az Alaphelyzetbe állítás parancsot, majd az Igen elemet a művelet megerősítéséhez.

  5. Frissítse a lapot az állapot megjelenítéséhez. A részletek megtekintéséhez jelölje ki az elemet.

  6. Válassza a Futtatás lehetőséget az indexelő feldolgozásának elindításához, vagy várja meg a következő ütemezett végrehajtást.

    Képernyőkép az Indexelő végrehajtási portál oldaláról, amelyen a Visszaállítás parancs ki van emelve.

A készségek alaphelyzetbe állítása (előzetes verzió)

A képességkészletekkel rendelkező indexelők esetében alaphelyzetbe állíthatja az egyes készségeket, hogy kényszerítse az adott képesség és a kimenetétől függő alsóbb rétegbeli készségek feldolgozását. Ha engedélyezte, a bővítési gyorsítótár is frissül.

Az alaphelyzetbe állítási készségek jelenleg csak REST-alapúak, és 2020.06.30-án vagy újabb verzióban érhetők el. Javasoljuk, hogy a legújabb előzetes verziójú API-t használja.

POST /skillsets/[skillset name]/resetskills?api-version=2024-05-01-preview
{
    "skillNames" : [
        "#1",
        "#5",
        "#6"
    ]
}

A fenti példában leírtaknak megfelelően egyéni készségeket is megadhat, de ha ezek közül bármelyikhez nem sorolt készségekből (#2–4) származó kimenetre van szükség, a nem listázatlan készségek akkor futnak, ha a gyorsítótár meg tudja adni a szükséges információkat. Annak érdekében, hogy ez igaz legyen, a 2–4. készségek gyorsítótárazott bővítései nem függhetnek az 1. számtól (az alaphelyzetbe állítás listában).

Ha nincs megadva szakértelem, a teljes képességkészlet végrehajtása, és ha a gyorsítótárazás engedélyezve van, a gyorsítótár is frissül.

Ne felejtse el nyomon követni az Indexelő futtatását a tényleges feldolgozás meghívásához.

Dokumentumok visszaállítása (előzetes verzió)

Az Indexelők – Docs alaphelyzetbe állítása a dokumentumkulcsok listáját fogadja el, hogy bizonyos dokumentumokat frissíthesse. Ha meg van adva, az alaphelyzetbe állítási paraméterek lesznek a feldolgozás egyetlen meghatározói, függetlenül a mögöttes adatok egyéb változásaitól. Ha például a legutóbbi indexelő futtatása óta 20 blob lett hozzáadva vagy frissítve, de csak egy dokumentumot állít vissza, akkor csak a dokumentum lesz feldolgozva.

Dokumentumonként a keresési dokumentum összes mezője frissül az adatforrás értékeivel. Nem választhatja ki és nem választhatja ki a frissíteni kívánt mezőket.

Ha a dokumentum egy képességkészlettel bővül, és gyorsítótárazott adatokkal rendelkezik, a program csak a megadott dokumentumokhoz hívja meg a készségkészletet, és a gyorsítótár frissül az újrafeldolgozott dokumentumokhoz.

Amikor először teszteli ezt az API-t, az alábbi API-k segíthetnek a viselkedés ellenőrzésében és tesztelésében. Az előzetes verziójú API 2020-06-30-preview és újabb verzióját használhatja. Javasoljuk, hogy a legújabb előzetes verziójú API-t használja.

  1. Indexelők hívása – Állapot lekérése előzetes API-verzióval az alaphelyzetbe állítás és a végrehajtás állapotának ellenőrzéséhez. Az alaphelyzetbe állítási kérelemről az állapotválasz végén talál információt.

  2. Indexelők hívása – A Dokumentumok visszaállítása egy előzetes verziójú API-val annak megadásához, hogy mely dokumentumokat kell feldolgozni.

    POST https://[service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2024-05-01-preview
    {
        "documentKeys" : [
            "1001",
            "4452"
        ]
    }
    
    • A kérelemben megadott dokumentumkulcsok a keresési index értékei, amelyek eltérhetnek az adatforrás megfelelő mezőitől. Ha nem biztos a kulcsértékben, küldjön egy lekérdezést az érték visszaadásához. Csak a dokumentumkulcsmező visszaadására használható select .

    • Több keresési dokumentumba (ahol az parsingMode jsonLines vagy jsonArrays vagy delimitedText értékre van állítva), a dokumentumkulcsot az indexelő hozza létre, és ismeretlen lehet Önnek. Ebben az esetben a dokumentumkulcs lekérdezése a megfelelő értéket adja vissza.

  3. A megadott dokumentumok feldolgozásához hívja meg az Indexelő futtatását (bármely API-verziót). Csak az adott dokumentumok vannak indexelve.

  4. Hívja meg az Indexelő futtatását az utolsó magas vízjelből történő feldolgozáshoz.

  5. A keresési dokumentumokban ellenőrizze a frissített értékeket, és ha nem biztos az értékben, adja vissza a dokumentumkulcsokat. Használja "select": "<field names>" , ha korlátozni szeretné, hogy mely mezők jelenjenek meg a válaszban.

A dokumentumkulcsok listájának felülírása

A Dokumentumok visszaállítása API többszöri hívása különböző kulcsokkal hozzáfűzi az új kulcsokat a dokumentumkulcsok alaphelyzetbe állításának listájához. Ha az API-t a overwrite paraméter értéke true értékre állítja, felülírja az aktuális listát az újkal:

POST https://[service name].search.windows.net/indexers/[indexer name]/resetdocs?api-version=2020-06-30-Preview
{
    "documentKeys" : [
        "200",
        "630"
    ],
    "overwrite": true
}

Ellenőrizze a "currentState" alaphelyzetbe állítási állapotát

Az alaphelyzetbe állítás állapotának ellenőrzéséhez és annak megtekintéséhez, hogy mely dokumentumkulcsok lesznek várólistán feldolgozásra, kövesse az alábbi lépéseket.

  1. Az Indexelő állapotának lekérése előzetes verziójú API-val hívhatja meg.

    Az előzetes verziójú API a currentState válasz végén található szakaszt adja vissza.

    "currentState": {
        "mode": "indexingResetDocs",
        "allDocsInitialTrackingState": "{\"LastFullEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"LastAttemptedEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"NameHighWaterMark\":null}",
        "allDocsFinalTrackingState": "{\"LastFullEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"LastAttemptedEnumerationStartTime\":\"2021-02-06T19:02:07.0323764+00:00\",\"NameHighWaterMark\":null}",
        "resetDocsInitialTrackingState": null,
        "resetDocsFinalTrackingState": null,
        "resetDocumentKeys": [
            "200",
            "630"
        ]
    }
    
  2. Ellenőrizze a "módot":

    Az Alaphelyzetbe állítási képességek esetében a "mode" értéket kell beállítani indexingAllDocs (mivel az AI-bővítés által kitöltött mezők tekintetében az összes dokumentum érintett lehet).

    A Dokumentumok visszaállítása beállításnál a "mode" értéket kell beállítani indexingResetDocs. Az indexelő mindaddig megőrzi ezt az állapotot, amíg az alaphelyzetbe állítási dokumentumhívásban megadott összes dokumentumkulcs feldolgozásra nem kerül, és ezalatt az idő alatt a művelet előrehaladása alatt más indexelő feladatok nem lesznek végrehajtva. A dokumentumkulcsok listájában lévő összes dokumentum megkereséséhez meg kell törni az egyes dokumentumokat a kulcs megkereséséhez és egyezéséhez, és ez eltarthat egy ideig, ha az adatkészlet nagy. Ha egy blobtároló több száz blobot tartalmaz, és az alaphelyzetbe állítani kívánt dokumentumok a végén vannak, az indexelő csak akkor találja meg a megfelelő blobokat, ha az összes többit először ellenőrizték.

  3. A dokumentumok újrafeldolgozása után futtassa újra az Indexelő állapotának lekérése parancsot. Az indexelő visszatér a indexingAllDocs módba, és a következő futtatáskor feldolgoz minden új vagy frissített dokumentumot.

Következő lépések

Az alaphelyzetbe állítási API-k a következő indexelő futtatásának hatókörének tájékoztatására szolgálnak. A tényleges feldolgozáshoz meg kell hívnia egy igény szerinti indexelő futtatását, vagy engedélyeznie kell egy ütemezett feladat számára a munka befejezését. A futtatás befejezése után az indexelő visszatér a normál feldolgozáshoz, akár ütemezett, akár igény szerinti feldolgozásról van szó.

Az indexelői feladatok alaphelyzetbe állítása és újrafuttatása után a keresési szolgáltatásból figyelheti az állapotot, vagy részletes információkat kérhet le az erőforrásnaplózáson keresztül.