Észlelés módosítása és törlése az Azure Storage indexelőivel az Azure AI Searchben

A kezdeti keresési index létrehozása után előfordulhat, hogy a későbbi indexelő feladatok csak új és módosított dokumentumokat szeretnének felvenni. Az Azure Storage-ból származó indexelt tartalmak esetében a változásészlelés automatikusan megtörténik, mert az indexelők az Azure Storage-objektumok és -fájlok beépített időbélyegeinek használatával nyomon követik az utolsó frissítést.

Bár a változásészlelés adott, a törlésészlelés nem. Az indexelők nem követik nyomon az objektumok törlését az adatforrásokban. Az árva keresési dokumentumok elkerülése érdekében implementálhat egy "helyreállítható törlési" stratégiát, amely a keresési dokumentumok törlését eredményezi, a második lépésben pedig a fizikai törlést az Azure Storage-ban.

A helyreállítható törlési stratégia kétféleképpen valósítható meg:

Előfeltételek

  • Azure Storage-indexelő használata Blob Storage, Table Storage, File Storage vagy Data Lake Storage Gen2 esetén

  • Konzisztens dokumentumkulcsok és fájlstruktúra használata. A dokumentumkulcsok vagy könyvtárnevek és elérési utak módosítása (az ADLS Gen2-re vonatkozik) megszakítja az indexelők által használt belső nyomkövetési információkat, hogy megtudják, melyik tartalom indexelt, és mikor lett utoljára indexelve.

Megjegyzés:

Az ADLS Gen2 lehetővé teszi a címtárak átnevezését. A címtár átnevezésekor a címtárban lévő blobok időbélyege nem frissül. Ennek eredményeképpen az indexelő nem indexeli újra ezeket a blobokat. Ha a címtárban lévő blobokat újra kell indexelni a címtár átnevezése után, mert új URL-címekkel rendelkeznek, frissítenie kell a LastModified címtárban lévő összes blob időbélyegét, hogy az indexelő tudja, hogy egy későbbi futtatás során újra indexelje őket. Az Azure Blob Storage virtuális könyvtárai nem módosíthatók, ezért nem tapasztalják ezt a problémát.

Natív blob helyreállítható törlése

Ebben a törlésészlelési módszerben az Azure AI Search az Azure Blob Storage natív blobtörlési funkciójától függ annak megállapításához, hogy a blobok átálltak-e helyreállítható törölt állapotra. Ha a blobok ebben az állapotban vannak észlelve, a keresési indexelő ezeket az információkat felhasználva eltávolítja a megfelelő dokumentumot az indexből.

A natív helyreállítható törlés követelményei

  • A blobok egy Azure Blob Storage-tárolóban lehetnek. Az Azure AI Search natív blobok helyreállítható törlési szabályzata nem támogatott az ADLS Gen2-ben vagy az Azure Filesban lévő blobok esetében.

  • A blobok helyreállítható törlésének engedélyezése.

  • Az indexben lévő dokumentumok dokumentumkulcsait blobtulajdonságnak vagy blob metaadatoknak kell megfeleltetnie, például "metadata_storage_path".

  • A helyreállítható törlés támogatásának konfigurálásához a REST API-t (api-version=2023-11-01) vagy az újabb verziót vagy az indexelő adatforrás konfigurációját kell használnia az Azure Portalon.

  • A Blob verziószámozása nem engedélyezhető a tárfiókban. Ellenkező esetben a natív helyreállítható törlést a tervezés nem támogatja.

Natív helyreállítható törlés konfigurálása

A Blob Storage-ban, ha a követelményeknek megfelelően engedélyezi a helyreállítható törlést, állítsa a megőrzési szabályzatot az indexelő időközi ütemezésénél sokkal magasabb értékre. Ha probléma merül fel az indexelő futtatásakor, vagy ha nagy számú dokumentumot szeretne indexelni, az indexelőnek sok ideje van arra, hogy végül feldolgozhassa a helyreállíthatóan törölt blobokat. Az Azure AI Search-indexelők csak akkor törölnek egy dokumentumot az indexből, ha a blobot helyreállíthatóan törölt állapotban dolgozza fel.

Az Azure AI Searchben állítson be egy natív blob helyreállítható törlésészlelési szabályzatot az adatforráson. Ezt megteheti az Azure Portalon a REST API (api-version=2023-11-01) használatával. Az alábbi utasítások bemutatják, hogyan állíthatja be a törlésészlelési szabályzatot az Azure Portalon vagy REST API-kon keresztül.

  1. Jelentkezzen be az Azure Portalra.

  2. Az Azure AI Search szolgáltatás Áttekintés lapján lépjen a New Data Source (Új adatforrás) elemre, amely egy adatforrásdefiníció megadására szolgáló vizualizációszerkesztő.

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

    Screenshot of data source configuration in Import Data wizard.

  3. Az Új adatforrás űrlapon töltse ki a szükséges mezőket, jelölje be a Törlések követése jelölőnégyzetet, és válassza a Natív blob helyreállítható törlése lehetőséget. Ezután a Mentés gombra kattintva engedélyezheti a funkciót az adatforrások létrehozásakor.

    Screenshot of portal data source native soft delete.

Törölt blobok újraindexelése natív helyreállítható törlési szabályzatokkal

Ha helyreállít egy helyreállíthatóan törölt blobot a Blob Storage-ban, az indexelő nem fogja mindig újraindexelni. Ennek az az oka, hogy az indexelő a blob időbélyegével LastModified határozza meg, hogy szükség van-e indexelésre. Ha egy helyreállíthatóan törölt blob nincs törölve, LastModified az időbélyege nem frissül, így ha az indexelő már feldolgozta a legutóbbi időbélyegekkel rendelkező LastModified blobokat, akkor nem fogja újraindexelni a nem törölt blobot.

A nem törölt blobok újraindexeléséhez frissítenie kell a blob időbélyegét LastModified . Ennek egyik módja a blob metaadatainak újbóli mentése. Nem kell módosítania a metaadatokat, de a metaadatok újbóli mentése frissíti a blob időbélyegét LastModified , hogy az indexelő tudja, hogy vegye fel.

Helyreállítható törlési stratégia egyéni metaadatok használatával

Ez a módszer egyéni metaadatokat használ annak jelzésére, hogy el kell-e távolítani egy keresési dokumentumot az indexből. Ehhez két külön művelet szükséges: a keresési dokumentum törlése az indexből, majd a fájltörlés az Azure Storage-ban.

Az Azure Storage-ban és az Azure AI Searchben is vannak követendő lépések, de más funkciófüggőségek nincsenek.

  1. Az Azure Storage-ban adjon hozzá egy egyéni metaadatkulcs-érték párot a fájlhoz, amely jelzi, hogy a fájl törlésre van megjelölve. Elnevezheti például az "IsDeleted" tulajdonságot hamis értékre. Ha törölni szeretné a fájlt, módosítsa igazra.

  2. Az Azure AI Searchben szerkessze az adatforrás definícióját úgy, hogy az tartalmazzon egy "dataDeletionDetectionPolicy" tulajdonságot. Az alábbi szabályzat például úgy véli, hogy egy fájl törölve lesz, ha rendelkezik egy metaadat-tulajdonsággal IsDeleted , amelynek értéke true:

    PUT https://[service name].search.windows.net/datasources/file-datasource?api-version=2020-06-30
    {
        "name" : "file-datasource",
        "type" : "azurefile",
        "credentials" : { "connectionString" : "<your storage connection string>" },
        "container" : { "name" : "my-share", "query" : null },
        "dataDeletionDetectionPolicy" : {
            "@odata.type" :"#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
            "softDeleteColumnName" : "IsDeleted",
            "softDeleteMarkerValue" : "true"
        }
    }
    
  3. Futtassa az indexelőt. Miután az indexelő feldolgozta a fájlt, és törölte a dokumentumot a keresési indexből, törölheti a fizikai fájlt az Azure Storage-ban.

Törölt blobok és fájlok újraindexelése

Visszavonhatja a helyreállítható törlést, ha az eredeti forrásfájl fizikailag még létezik az Azure Storage-ban.

  1. Módosítsa a "softDeleteMarkerValue" : "false" blobot vagy a fájlt az Azure Storage-ban.

  2. Ellenőrizze a blob vagy fájl időbélyegét LastModified , hogy az újabb legyen, mint az utolsó indexelő futtatása. A meglévő metaadatok ismételt mentésével kényszerítheti az aktuális dátum és idő frissítését.

  3. Futtassa az indexelőt.

További lépések