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. Dizin oluşturucular, Azure Depolama'daki nesneler ve dosyalar üzerindeki yerleşik zaman damgalarını kullanarak son güncelleştirmeyi takip ettiğinden, Azure Depolama'dan kaynaklanan dizinlenmiş içerik için 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 bir adım olarak Azure Depolama'da fiziksel silme işlemiyle önce arama belgelerinin silinmesine neden olan bir "geçici silme" stratejisi uygulayabilirsiniz.
Geçici silme stratejisini uygulamanın iki yolu vardır:
- Yerel blob geçici silme (önizleme), yalnızca Blob Depolama için geçerlidir
- Özel meta verileri kullanarak geçici silme
Silme algılama stratejisi ilk dizin oluşturucu çalıştırmasından uygulanmalıdır. İlk çalıştırmadan önce silme ilkesini oluşturmadıysanız, ilkeyi daha sonra dizin oluşturucuya ekleyip sıfırlasanız bile, ilke uygulanmadan önce silinmiş olan tüm belgeler dizininizde kalır. Bu oluştuysa, silme ilkesinin en başından itibaren geçerli olduğundan emin olarak yeni bir dizin oluşturucu kullanarak yeni bir dizin oluşturmanız önerilir.
Ö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.
Not
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
Bloblar bir Azure Blob Depolama kapsayıcısında olmalıdır. Azure AI Search yerel blob geçici silme ilkesi, ADLS 2. Nesil veya Azure Dosyalar bloblar için desteklenmez.
Bloblar için geçici silmeyi etkinleştirin.
Dizininizdeki belgelerin belge anahtarları bir blob özelliği veya "metadata_storage_path" gibi blob meta verileri olacak şekilde eşlenmelidir.
Geçici silme desteğini yapılandırmak için Azure portalında gibi bir önizleme REST API'sini
2024-05-01-preview
veya dizin oluşturucu Veri Kaynağı yapılandırmasını kullanmanız gerekir.Blob sürüm oluşturma , depolama hesabında etkinleştirilmemelidir. Aksi takdirde, yerel geçici silme tasarım tarafından desteklenmez.
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. Bunu Azure portalından veya previewREST API'si (2024-05-01-preview
kullanarak) 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.
Azure Portal’ında oturum açın.
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 Azure portalında nerede bulabileceğiniz gösterilmektedir.
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.
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'da dosya silme.
Bu özellik genel olarak kullanılabilir.
Hem Azure Depolama hem de Azure AI Search'te izleyebileceğiniz adımlar vardır, ancak başka özellik bağımlılıkları yoktur.
Azure Depolama'da, dosyaya bir özel 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.
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
true
bir meta veri özelliğineIsDeleted
sahipse bir dosyanın silinmesini dikkate alır:PUT https://[service name].search.windows.net/datasources/file-datasource?api-version=2024-07-01 { "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" } }
Dizin oluşturucuyu çalıştırın. Dizin oluşturucu dosyayı işleyip arama dizininden belgeyi sildikten sonra Azure Depolama'daki fiziksel dosyayı silebilirsiniz.
Silinmemiş blobları ve dosyaları yeniden dizine alma
Özgün kaynak dosya Azure Depolama'da hala fiziksel olarak mevcutsa geçici silme işlemini tersine çevirebilirsiniz.
"softDeleteMarkerValue" : "false"
Azure Depolama'da blob veya dosya üzerinde öğesini değiştirin.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.Dizin oluşturucuyu çalıştırın.