Arama dizinindeki belgeleri silme

Uyarı

Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.

Bu makalede, REST API'lerini veya Azure SDK'larını kullanarak Azure Yapay Zeka Arama'te arama dizininden tüm belgelerin nasıl silineceği açıklanmaktadır. Bu, şu görevleri kapsar:

  • El ile silmenin ne zaman gerekli olduğunu anlama
  • Silinecek belirli belgeleri tanımlama
  • Belge sayılarını ve depolama ölçümlerini alma
  • Tek veya yalnız bırakılmış bir belgeyi silme
  • Belgeleri toplu olarak silme
  • Silmeyi onayla

Tip

Hızlı bir tek belge silme işlemi için Tek bir belgeyi silme bölümüne atlayın.

Önkoşullar

El ile silmenin ne zaman gerekli olduğunu anlama

Uygulama kodunun veri içeri aktarmayı ve dizin oluşturmayı üstlendiği gönderme modu yaklaşımını kullandığınızda, el ile belge silme gereklidir.

Ayrıca , dizini yüklemek için Logic Apps kullanıyorsanız el ile belge silme işlemi yapmanız gerekir.

Ayrıca, arama belgeleri kaynak belgelerden "yalnız bırakılmış" hale gelirse dizin oluşturucu temelli iş yüklerinde el ile belge silmeniz gerekebilir. Dizin oluşturucuların önemli avantajlarından biri, hedef veri kaynağının değişiklik ve silme algılama özellikleri aracılığıyla otomatik içerik alma ve eşitlemedir. Desteklenen tüm veri kaynakları bir tür algılama düzeyi sağlar. Ancak bazı durumlarda, eşitlenmiş silme işlemi, bir kaynak belgeyi (veya kaydı) silinmek üzere işaretlediğiniz, dizin oluşturucuyu çalıştırarak dizinlenmiş içeriği sildiğiniz ve yalnızca dizin güncelleştirildikten sonra kaynak içeriği fiziksel olarak sildiğiniz geçici silme stratejisine göre sıralanır. Kaynak içerik önce silinirse, arama dizininde yalnız bırakılmış belgeleriniz olur. Kaynak ve dizine alınan içerik arasında eşliği yeniden oluşturmak için dizininizdeki yalnız bırakılmış belgeleri el ile silmeniz gerekir.

Aşağıdaki bağlantılar, dizin oluşturucu temelli iş yüklerindeki her veri kaynağı için değişiklik ve silme algılama hakkında daha fazla bilgi sağlar.

Silinmek üzere belirli belgeleri tanımlama

Tüm belgeler, arama dizinindeki bir belge anahtarı tarafından benzersiz olarak tanımlanır. Belgeyi silmek için, hangi alanın belge anahtarı olduğunu belirlemeniz ve silme isteğinde anahtarı sağlamanız gerekir.

Azure portalında her dizinin alanlarını görüntüleyebilirsiniz. Belge anahtarları dize alanlarıdır ve daha kolay fark etmelerini sağlamak için bir anahtar simgesiyle gösterilir.

Belge anahtarını bulma

Belge anahtarının hangi alan olduğunu bildiğinizde, arama sonuçlarında anahtar alanını döndüren bir sorgu çalıştırarak anahtar değerini alabilirsiniz.

Bu örnekte, arama dizesi belgeyi dizinde bulmak için kullanılır ve select deyimi sonuçlarda hangi alanların olduğunu belirler. "HotelId" bu örnekteki belge anahtarıdır.

POST https://[service name].search.windows.net/indexes/hotels-sample/docs/search?api-version=2026-04-01
{
    "search": "this query has terms that pertain to the document I want to delete",
    "select": "HotelName, HotelId",
    "count": true
}

Bu anahtar sözcük aramasının sonuçları varsayılan olarak ilk 50'dir. Silmek istediğiniz belge arama ölçütlerini karşılarsa, sonuçlarda belgeyi (ve anahtarı) görmeniz gerekir. Sorgunun doğru belgeye sahip olduğunuzu onaylamanıza yardımcı olacak açıklayıcı bir alan içerdiğinden emin olun.

{
  "@odata.count": 50,
  "value": [
    {
      "@search.score": 4.5116634,
      "HotelId": "18",
      "HotelName": "Ocean Water Resort & Spa"
    }
   ...
  ]
}

Basit bir dize basittir, ancak dizinde base-64 kodlanmış bir alan kullanılıyorsa veya bir parsingMode ayardan arama belgeleri oluşturulduysa, aşina olmadığınız değerlerle çalışıyor olabilirsiniz. Dizin oluşturucu tarafından oluşturulan öbeklenmiş belgelerle çalışıyorsanız, belge anahtarı genellikle uzun bir sayı ve harf dizilerinden oluşan oluşturulmuş bir "chunked_id" olur.

Belirli bir belgeyi arama

Artık belge anahtarınız olduğuna göre, belgenin tamamını alan bir arama sorgusu çalıştırın. Belge bir parça ise, ana belgenin kimliğini görebilmelisiniz. Belge anahtarı sorgu parametresi olarak eklenir.

İlk örnek, belge anahtarı değerine 18sahip olan oteli döndürür.

GET https://[service name].search.windows.net/indexes/hotels-sample/docs('18')?api-version=2026-04-01

İkinci örnek bir öbek belgesi döndürür. "chunk_id" belge anahtarıdır.

GET https://[service name].search.windows.net/indexes/chunking-example-index/docs('aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb')?api-version=2026-04-01

İkinci örnekteki yanıt tüm alanları içerir ve neleri sildiğinizden emin olmak için gözden geçirmeniz gerekir. Ebeveyn bilgilerini içeren alanlar, tek bir ebeveyn belgesini arama dizininde, manuel olarak parçalara ayrılmış belgelere yeniden dizinlemeniz gerektiğinde kullanışlıdır.

{
  "chunk_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "parent_id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
  "chunk": "Unpopulated Slopes of an Active Volcano\u2014Naples, Italy ... 90\n\nDazzling Coastlines\u2014Italy ... .92\n\nLiving on Fertile Land\u2014Nile River, Egypt  ... 94\n\n\n\n vii",
  "title": "earth_at_night_508.pdf",
  "text_vector": [ <omitted> ]
}

Tip

Arama sorgusu çalıştırmak için REST istemcisi, Azure SDK istemci kitaplığı veya komut satırı aracı kullanın. Azure portalı sorgu için GET isteklerini desteklemez.

Belge sayılarını ve depolama ölçümlerini alma

Belgeleri silmeden önce, daha sonra silme işlemini onaylayabileceğiniz dizin belgesi sayısı ve depolama alanı için ilk ölçümleri alın.

Belge sayılarını ve dizin depolama alanını şu şekilde alabilirsiniz:

Örnek bir yanıt aşağıda verilmişti:

{
  "documentCount": 12,
  "storageSize": 123456,
  "vectorIndexSize": 123456
}

Tek bir belgeyi silme

  1. Belgeler - Dizin REST API'sini bir silme @search.action işlemiyle kullanarak arama dizininden kaldırın.

  2. Dizin adını ve uç noktayı belirten bir POST çağrısı formüle edin docs/index .

  3. İsteğin gövdesinde silmek istediğiniz belgenin anahtarının bulunduğundan emin olun.

    POST https://[service name].search.windows.net/indexes/hotels-sample/docs/index?api-version=2026-04-01
    Content-Type: application/json   
    api-key: [admin key]
    
    {  
      "value": [  
        {  
          "@search.action": "delete",  
          "id": "18"  
        }  
      ]  
    }
    
  4. İsteği gönderin.

    Aşağıdaki tabloda, yanıtta döndürülebilecek çeşitli belge başına durum kodları açıklanmaktadır. Bazı durum kodları isteğin kendisiyle ilgili sorunları, diğerleri ise geçici hata koşullarını belirtir. İkincisi, bir gecikmeden sonra yeniden denemeniz gerekir.

    Durum kodu Meaning Yeniden denenebilir Notes
    200 Belge başarıyla silindi. Yok Silme işlemleri idemopotenttir. Başka bir ifadeyle, dizinde bir belge anahtarı olmasa bile, bu anahtarla silme işlemi denenmesi 200 durum koduyla sonuçlanır.
    400 Belgede silinmesini engelleyen bir hata oluştu. Hayı Yanıttaki hata iletisi ayrıntıları sağlar.
    422 Dizin, 'allowIndexDowntime' seçeneği 'true' olarak ayarlanarak güncellendiği için geçici olarak kullanılamıyor. Yes Indeksin kullanılabilir olmasını bekleyin.
    503 Arama hizmetiniz, büyük olasılıkla ağır yük nedeniyle geçici olarak kullanılamıyor. Yes Kodunuzun yeniden denemeden önce beklemesi gerekir, yoksa hizmetin kullanım dışı durumunun uzaması riskiyle karşılaşırsınız.

    Uyarı

    İstemci kodunuz sık sık bir 207 yanıtıyla karşılaşırsa, olası nedenlerden biri sistemin yük altında olmasıdır. 503 özelliğini kontrol ederek statusCode ifadesini onaylayabilirsiniz. Bu durumda dizin oluşturma isteklerini azaltmanızı öneririz. Aksi takdirde, indeksleme trafiği azalmazsa, sistem 503 hatası vererek tüm istekleri reddetmeye başlayabilir.

  5. Silme işlemini onaylamak için Arama sorgusunu yeniden gönderebilirsiniz. 404 belgesi bulunamadı iletisini almanız gerekir.

    GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/18?api-version=2026-04-01
    

Başvuru:Belgeler - Dizin

Başarılı bir silme isteği HTTP 200 (Tamam) döndürür. Yanıt gövdesi her belgenin durumunu içerir:

{
    "value": [
        { "key": "18", "status": true, "statusCode": 200 }
    ]
}

Belgeleri toplu olarak silme

  1. Belgeler - Dizin REST API'sini bir silme @search.action işlemiyle kullanarak arama dizininden kaldırın. Dizin adını ve uç noktayı belirten bir POST çağrısı formüle edin docs/index .

  2. İsteğin gövdesinde silmek istediğiniz tüm belgelerin anahtarlarının bulunduğundan emin olun.

    POST https://[service name].search.windows.net/indexes/hotels-sample/docs/index?api-version=2026-04-01
    Content-Type: application/json   
    api-key: [admin key]
    
    {
      "value": [
        {
          "@search.action": "delete",
          "id": "doc1"
        },
        {
          "@search.action": "delete",
          "id": "doc2"
        }
      ]
    }
    
  • Toplu iş sınırları: En iyi performansı sağlamak için toplu işlemlerin istek başına 1.000 belgeyle veya kabaca 16 MB ile sınırlandırılması önerilir.

  • Idempotency: Silme işlemi idempotenttir; Var olmayan bir belge kimliğini silmeye çalışırsanız, API yine de 200 OK durumu döndürür.

  • Gecikme süresi: Belgeler her zaman depolama alanından hemen kaldırılmaz. Arka plan işlemi, fiziksel silme işlemini birkaç dakikada bir gerçekleştirir.

  • Vektör depolama: Belgelerin silinmesi vektör depolama kotalarını hemen boşaltmaz. Fiziksel silme işlemi birkaç dakika sürer. Vektör alanının hemen geri kazanılmasını sağlamak için dizini bırakmanız ve yeniden oluşturmanız gerekebilir.

Başvuru:Belgeler - Dizin

Belge silmeyi doğrulama

Belgeleri sildikten sonra silme işleminin başarılı olduğunu doğrulayın.

  1. Azure portalında arama hizmetine Genel Bakış sayfasını açın.
  2. Arama yönetimi>Dizinlerini seçin.
  3. Dizininizin Belge sayısı sütununu denetleyin.
  4. Sayı değişmediyse birkaç dakika bekleyin ve yenileyin (silme işlemi zaman uyumsuzdur).

Belgenin silinmesi dizinde hemen yer açmaz. Birkaç dakikada bir, fiziksel silme işlemini arka plan işlemi gerçekleştirir. Dizin istatistiklerini döndürmek için Azure portalını veya İstatistikLeri Al API'sini kullandığınızda, silme işleminin Azure portalına ve API ölçümlerine yansıtılmadan önce kısa bir gecikme bekleyebilirsiniz.

Belge silme sorunlarını giderme

Aşağıdaki tabloda, belgeleri silerken karşılaşılan yaygın sorunlar ve bunların nasıl çözüleceğinin listesi yer alır.

Sorun Nedeni Çözüm
Belge sayısı değişmedi Silme işlemi zaman uyumsuzdur. Arka plan işlemi birkaç dakikada bir çalışır. 2-3 dakika bekleyin ve yenileyin. Dizin istatistiklerini yeniden denetleyin.
400 Hatalı İstek Geçersiz belge anahtarı veya hatalı biçimlendirilmiş istek gövdesi. Belge anahtarı alan adının dizin şemanızla eşleştiğinden emin olun. JSON sözdizimini kontrol edin.
403 Yasak Yetersiz izinler. Bir yönetici API anahtarı kullanın veya kimliğinizin Arama Dizini Verileri Katkıda Bulunanı rolüne sahip olduğundan emin olun.
Dizinde 404 Bulunamadı Dizin ismi yanlış veya mevcut değil. İstek URL'nizdeki dizin adını doğrulayın.
Depolama alanı geri kazanılmadı Arka planda zaman uyumsuz biçimde fiziksel silme gerçekleşir. Birkaç dakika bekleyin. Vektör depolamayı hemen geri kazanmak için dizini bırakın ve yeniden oluşturun.
Yalnız bırakılmış belgeler kalır Dizin oluşturucu silme algılama ile çalıştırılmadan önce kaynak belgeler silindi. Yalnız bırakılmış belgeleri, belge anahtarlarını kullanarak el ile silin.

Ayrıca bakınız