Azure AI Search'te dizini bırakma ve yeniden oluşturma

Bu makalede Azure AI Search dizininin nasıl bırakılıp yeniden derlenmesi açıklanır. Yeniden derlemelerin gerekli olduğu durumları açıklar ve devam eden sorgu istekleri üzerinde yeniden derlemelerin etkilerini azaltmaya yönelik öneriler sağlar. Sık sık yeniden oluşturmanız gerekiyorsa, uygulamanızın işaret ettiği dizini değiştirmenizi kolaylaştırmak için dizin diğer adlarını kullanmanızı öneririz.

Etkin geliştirme sırasında, dizin tasarımını yinelerken dizinleri bırakmak ve yeniden oluşturmak yaygın bir işlemdir. Çoğu geliştirici, yeniden dizinlemenin daha hızlı gerçekleşmesi için verilerinin küçük bir temsili örneğiyle çalışır.

Yeniden derleme gerektiren değişiklikler

Aşağıdaki tabloda dizin bırakma ve yeniden oluşturma gerektiren değişiklikler listelemektedir.

Eylem Açıklama
Alan silme Bir alanın tüm izlemelerini fiziksel olarak kaldırmak için dizini yeniden oluşturmanız gerekir. Hemen yeniden derleme pratik olmadığında, erişimi eski bir alandan uzağa yönlendirmek için uygulama kodunu değiştirebilir veya aramaAlanları'nı kullanarak hangi alanların aranıp döndürüleceğini seçmek için sorgu parametrelerini seçebilirsiniz. Fiziksel olarak, söz konusu alanı atlayan bir şema uyguladığınızda, alan tanımı ve içeriği bir sonraki yeniden derlemeye kadar dizinde kalır.
Alan tanımını değiştirme Alan adında, veri türünde veya belirli dizin özniteliklerinde (aranabilir, filtrelenebilir, sıralanabilir, modellenebilir) yapılan düzeltmeler tam yeniden derleme gerektirir.
Alana çözümleyici atama Çözümleyiciler bir dizinde tanımlanır, alanlara atanır ve sonra belirteçlerin nasıl oluşturulduğunu bildirmek için dizin oluşturma sırasında çağrılır. Bir dizine istediğiniz zaman yeni bir çözümleyici tanımı ekleyebilirsiniz, ancak yalnızca alan oluşturulduğunda bir çözümleyici atayabilirsiniz . Bu hem çözümleyici hem de indexAnalyzer özellikleri için geçerlidir. searchAnalyzer özelliği bir özel durumdur (bu özelliği varolan bir alana atayabilirsiniz).
Dizindeki çözümleyici tanımını güncelleştirme veya silme Dizinin tamamını yeniden oluşturmadığınız sürece dizindeki mevcut çözümleyici yapılandırmasını (çözümleyici, belirteç oluşturucu, belirteç filtresi veya karakter filtresi) silemez veya değiştiremezsiniz.
Öneri oluşturucuya alan ekleme Bir alan zaten varsa ve bunu Bir Öneri oluşturucu yapısına eklemek istiyorsanız, dizini yeniden derleyin.
Katmanları değiştirme Yerinde yükseltmeler desteklenmez. Daha fazla kapasiteye ihtiyacınız varsa yeni bir hizmet oluşturun ve dizinlerinizi sıfırdan yeniden oluşturun. Bu işlemi otomatikleştirmeye yardımcı olmak için bu Azure AI Search .NET örnek deposunda index-backup-restore örnek kodunu kullanabilirsiniz. Bu uygulama dizininizi bir dizi JSON dosyasına yedekler ve ardından dizini belirttiğiniz bir arama hizmetinde yeniden oluşturur.

Yeniden oluşturma gereksinimi olmayan değişiklikler

Mevcut fiziksel yapıları etkilemeden başka birçok değişiklik yapılabilir. Özellikle, aşağıdaki değişiklikler için dizin yeniden derlemesi gerekmez. Bu değişiklikler için, değişikliklerinizle var olan bir dizin tanımını güncelleştirebilirsiniz.

  • Yeni alan ekle
  • Mevcut bir alanda alınabilir özniteliği ayarlama
  • Mevcut dizine sahip bir alanda aramaAnalyzer'i güncelleştirmeAnalyzer
  • Dizine yeni bir çözümleyici tanımı ekleme (yeni alanlara uygulanabilir)
  • Puanlama profilleri ekleme, güncelleştirme veya silme
  • CORS ayarlarını ekleme, güncelleştirme veya silme
  • Eş anlamlı ekleme, güncelleştirme veya silme Haritalar
  • Anlamsal yapılandırmaları ekleme, güncelleştirme veya silme

Yeni bir alan eklediğinizde, var olan dizinlenmiş belgelere yeni alan için null değer verilir. Gelecekteki bir veri yenilemesinde, dış kaynak verilerindeki değerler Azure AI Search tarafından eklenen null değerlerin yerini alır. Dizin içeriğini güncelleştirme hakkında daha fazla bilgi için bkz . Belge Ekleme, Güncelleştirme veya Silme.

Dizini yeniden oluşturma

Geliştirme sırasında dizin şeması sık sık değişir. Küçük bir temsili veri kümesiyle silinebilen, yeniden oluşturulabilen ve hızla yeniden yüklenebilen dizinler oluşturarak bunu planlayabilirsiniz.

Zaten üretimde olan uygulamalar için, sorgu kapalı kalma süresini önlemek için mevcut bir dizini yan yana çalıştıran yeni bir dizin oluşturmanızı öneririz. Uygulama kodunuz yeni dizine yeniden yönlendirme sağlar.

  1. Yer olup olmadığını denetleyin. Arama hizmeti, hizmet katmanına göre değişen en fazla dizin sayısına tabidir. İkinci bir dizin için yeriniz olduğundan emin olun.

  2. Yeniden derleme gerekip gerekmediğini belirleyin. Yalnızca alan ekliyorsanız veya dizinde alanlarla ilgili olmayan bir bölümünü değiştiriyorsanız, tanımı silmeden, yeniden oluşturmadan ve tamamen yeniden yüklemeden kolayca güncelleştirebilirsiniz.

  3. İleride başvurmak için ihtiyacınız olması durumunda bir dizin tanımı alın.

  4. Yeni ve eski dizinleri yan yana çalıştırmadığınız varsayılarak mevcut dizini bırakın.

    Bu dizini hedefleyen tüm sorgular hemen bırakılır. Bir dizini silmenin geri alınamaz olduğunu ve alan koleksiyonu ve diğer yapılar için fiziksel depolamayı yok ettiğini unutmayın. Bırakmadan önce etkilerini düşünmek için duraklatın.

  5. İsteğin gövdesinin değiştirilmiş veya değiştirilmiş alan tanımlarını içerdiği düzeltilmiş bir dizin oluşturun.

  6. Dizini dış kaynaktan belgelerle birlikte yükleyin.

Dizini oluşturduğunuzda, dizin şemasındaki her alan için fiziksel depolama alanı ayrılır ve her aranabilir alan için ters dizin oluşturulur. Aranamayan alanlar filtrelerde veya ifadelerde kullanılabilir, ancak ters dizinleri yoktur ve tam metin veya benzer arama yapılabilir değildir. Dizin yeniden derlemesinde, bu ters dizinler, sağladığınız dizin şemasına göre silinir ve yeniden oluşturulur.

Dizini yüklediğinizde, her alanın ters çevrilmiş dizini, her belgedeki tüm benzersiz, belirteçli sözcüklerle doldurulur ve ilgili belge kimlikleriyle eşler. Örneğin, bir otel veri kümesinin dizinini oluştururken, City alanı için oluşturulan ters dizin Seattle, Portland ve benzeri terimler içerebilir. Şehir alanında Seattle veya Portland içeren belgeler, belge kimlikleri terimin yanında listelenir. Herhangi bir Ekle, Güncelleştir veya Sil işleminde, koşullar ve belge kimliği listesi buna göre güncelleştirilir.

İş yüklerini dengeleme

Dizin oluşturma arka planda çalışmaz, ancak arama hizmeti dizin oluşturma işlerini devam eden sorgulara göre dengeler. Dizin oluşturma sırasında, sorguların zamanında tamamlandığından emin olmak için portalda sorgu isteklerini izleyebilirsiniz.

Dizin oluşturma iş yükleri kabul edilemez düzeyde sorgu gecikme süresine neden olursa performans analizi gerçekleştirin ve olası risk azaltma için bu performans ipuçlarını gözden geçirin.

Güncelleştirmeleri denetle

İlk belge yüklenir yüklenmez bir dizini sorgulamaya başlayabilirsiniz. Bir belgenin kimliğini biliyorsanız, Arama Belgesi REST API'si belirli bir belgeyi döndürür. Daha geniş kapsamlı test için dizin tamamen yüklenene kadar beklemeniz ve ardından görmeyi beklediğiniz bağlamı doğrulamak için sorguları kullanmanız gerekir.

Güncelleştirilmiş içeriği denetlemek için Arama Gezgini'ni veya REST istemcisini kullanabilirsiniz.

Bir alanı eklediyseniz veya yeniden adlandırdıysanız, $select kullanarak bu alanı döndürebilirsiniz:search=*&$select=document-id,my-new-field,some-old-field&$count=true

Ayrıca bkz.