Azure AI Search'te Azure Depolama için dizin oluşturucuları kullanarak algılamayı değiştirme ve silme

İlk arama dizini oluşturulduktan sonra, sonraki dizin oluşturucu işlerinin yalnızca yeni ve değiştirilmiş belgeleri almasını isteyebilirsiniz. Azure Depolama'dan kaynaklanan dizinli içerik için, dizin oluşturucular Azure Depolama'daki nesneler ve dosyalardaki yerleşik zaman damgalarını kullanarak son güncelleştirmeyi takip ettiğinden değişiklik algılama otomatik olarak gerçekleşir.

Değişiklik algılama belirli bir değer olsa da silme algılaması değildir. Dizin oluşturucu, veri kaynaklarında nesne silme işlemini izlemez. Yalnız bırakılmış arama belgelerinin olmasını önlemek için, ikinci adım olarak azure Depolama fiziksel silme işlemiyle birlikte arama belgelerinin silinmesine neden olan bir "geçici silme" stratejisi uygulayabilirsiniz.

Geçici silme stratejisini uygulamanın iki yolu vardır:

Önkoşullar

  • Blob Depolama, Tablo Depolama, Dosya Depolama veya Data Lake Storage 2. Nesil için Azure Depolama dizin oluşturucu kullanma

  • Tutarlı belge anahtarlarını ve dosya yapısını kullanın. Belge anahtarlarının veya dizin adlarının ve yollarının değiştirilmesi (ADLS 2. Nesil için geçerlidir), dizin oluşturucular tarafından hangi içeriğin dizine eklendiğini ve en son ne zaman dizinlendiğini bilmek için kullanılan iç izleme bilgilerini bozar.

Dekont

ADLS 2. Nesil, dizinlerin yeniden adlandırılmasına izin verir. Bir dizin yeniden adlandırıldığında, bu dizindeki blobların zaman damgaları güncelleştirilmez. Sonuç olarak, dizin oluşturucu bu blobları yeniden dizine almaz. Artık yeni URL'leri olduğundan dizindeki blobların yeniden adlandırıldıktan sonra dizindeki blobların yeniden dizine alınması gerekiyorsa, dizin oluşturucunun LastModified gelecekteki bir çalıştırma sırasında yeniden dizine eklendiğini bilmesi için dizindeki tüm blobların zaman damgasını güncelleştirmeniz gerekir. Azure Blob Depolama'daki sanal dizinler değiştirilemez, bu nedenle bu sorun yoktur.

Yerel blob geçici silme

Bu silme algılama yaklaşımı için Azure AI Search, blobların geçici silme durumuna geçirilip geçirmediğini belirlemek için Azure Blob Depolama'daki yerel blob geçici silme özelliğine bağlıdır. Bloblar bu durumda algılandığında, arama dizin oluşturucu bu bilgileri kullanarak ilgili belgeyi dizinden kaldırır.

Yerel geçici silme gereksinimleri

Yerel geçici silmeyi yapılandırma

Blob depolamada, gereksinimlere göre geçici silmeyi etkinleştirirken bekletme ilkesini dizin oluşturucu aralık zamanlamanızdan çok daha yüksek bir değere ayarlayın. Dizin oluşturucuyu çalıştırırken bir sorun varsa veya dizine eklemek için çok sayıda belgeniz varsa, dizin oluşturucunun geçici olarak silinen blobları işlemesi için yeterli zaman vardır. Azure AI Search dizin oluşturucuları, bir belgeyi yalnızca geçici olarak silinmiş durumdayken blobu işlerse dizinden siler.

Azure AI Search'te veri kaynağında yerel blob geçici silme algılama ilkesi ayarlayın. Rest API (api-version=2023-11-01) kullanarak bunu Azure portalından yapabilirsiniz. Aşağıdaki yönergeler, Azure portalında veya REST API'leri aracılığıyla silme algılama ilkesinin nasıl ayarlanacağı açıklanmaktadır.

  1. Azure Portal oturum açın.

  2. Azure AI Arama hizmeti Genel Bakış sayfasında, veri kaynağı tanımı belirtmek için görsel düzenleyici olan Yeni Veri Kaynağı'na gidin.

    Aşağıdaki ekran görüntüsünde bu özelliği portalda nerede bulabileceğiniz gösterilmektedir.

    Screenshot of data source configuration in Import Data wizard.

  3. Yeni Veri Kaynağı formunda gerekli alanları doldurun, Silmeleri izle onay kutusunu seçin ve Yerel blob geçici silme'yi seçin. Ardından Kaydet'e tıklayarak Özelliği Veri Kaynağı oluşturma sırasında etkinleştirin.

    Screenshot of portal data source native soft delete.

Yerel geçici silme ilkelerini kullanarak silinmemiş blobları yeniden dizine alma

Blob depolamada geçici olarak silinen bir blobu geri yüklerseniz, dizin oluşturucu bunu her zaman yeniden dizine almaz. Bunun nedeni, dizin oluşturucunun dizin oluşturma gerekip gerekmediğini belirlemek için blob'un LastModified zaman damgasını kullanmasıdır. Geçici olarak silinen blob silinmediğinde, LastModified zaman damgası güncelleştirilmez, bu nedenle dizin oluşturucu daha yeni LastModified zaman damgalarına sahip blobları zaten işlediyse, silinmemiş blobu yeniden dizine almaz.

Silinmemiş bir blobu yeniden dizine almak için blob'un LastModified zaman damgasını güncelleştirmeniz gerekir. Bunu yapmak için söz konusu blobun meta verilerini yeniden kaydetmek gerekir. Meta verileri değiştirmeniz gerekmez, ancak meta verileri yeniden kaydetmek blob'un LastModified zaman damgasını güncelleştirerek dizin oluşturucunun bu zaman damgasını almasını sağlar.

Özel meta verileri kullanarak geçici silme stratejisi

Bu yöntem, arama belgesinin dizinden kaldırılması gerekip gerekmediğini belirtmek için özel meta veriler kullanır. İki ayrı eylem gerektirir: arama belgesini dizinden silme ve ardından Azure Depolama'de dosya silme.

Hem Azure Depolama hem de Azure AI Search'te izleyebileceğiniz adımlar vardır, ancak başka özellik bağımlılıkları yoktur.

  1. Azure Depolama'da, dosyaya özel bir meta veri anahtar-değer çifti ekleyerek dosyanın silinmek üzere işaretlenmiş olduğunu belirtin. Örneğin, özelliğini "IsDeleted" olarak adlandırabilir ve false olarak ayarlayabilirsiniz. Dosyayı silmek istediğinizde true olarak değiştirin.

  2. Azure AI Search'te veri kaynağı tanımını "dataDeletionDetectionPolicy" özelliğini içerecek şekilde düzenleyin. Örneğin, aşağıdaki ilke değeriyle truebir meta veri özelliğine IsDeleted sahipse bir dosyanın silinmesini dikkate alır:

    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. Dizin oluşturucuyu çalıştırın. Dizin oluşturucu dosyayı işledikten ve belgeyi arama dizininden sildikten sonra Azure Depolama'da fiziksel dosyayı silebilirsiniz.

Silinmemiş blobları ve dosyaları yeniden dizine alma

Özgün kaynak dosya Azure Depolama fiziksel olarak hala mevcutsa geçici silme işlemini tersine çevirebilirsiniz.

  1. "softDeleteMarkerValue" : "false" Azure Depolama'de blob veya dosya üzerinde öğesini değiştirin.

  2. Blob veya dosyanın LastModified zaman damgasını denetleerek son dizin oluşturucu çalıştırmasından daha yeni olmasını sağlayın. Mevcut meta verileri yeniden kaydetmek suretiyle bir güncelleştirmeyi geçerli tarih ve saate zorlayabilirsiniz.

  3. Dizin oluşturucuyu çalıştırın.

Sonraki adımlar