Odstranění dokumentů v indexu vyhledávání

Poznámka:

Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.

Tento článek vysvětluje, jak odstranit celé dokumenty z indexu vyhledávání ve službě Azure AI Vyhledávač pomocí rozhraní REST API nebo sad AZURE SDK. Zabývá se těmito úkoly:

  • Vysvětlení, kdy je vyžadováno ruční odstranění
  • Identifikace konkrétních dokumentů k odstranění
  • Získání počtu dokumentů a metrik o úložišti
  • Odstranění jednotlivého nebo osiřelého dokumentu
  • Hromadné odstranění dokumentů
  • Potvrdit odstranění

Návod

Pokud chcete rychle odstranit jeden dokument, přeskočte na Odstranit jeden dokument.

Požadavky

Vysvětlení, kdy je vyžadováno ruční odstranění

Ruční odstranění dokumentu je nezbytné, když použijete přístup k indexování v režimu nabízení, kde kód aplikace zpracovává import dat a řídí indexování.

Pokud k načtení indexu používáte Logic Apps, potřebujete také ruční odstranění dokumentu.

Pokud se vyhledávací dokumenty stanou oddělenými od zdrojových dokumentů, můžete také potřebovat ručně odstranit dokumenty v úlohách, které jsou řízeny indexerem. Důležitou výhodou indexerů je automatizované načítání a synchronizace obsahu prostřednictvím funkcí detekce změn a odstranění cílového zdroje dat. Všechny podporované zdroje dat poskytují určitou úroveň detekce. V některých případech je ale synchronizované odstranění založené na strategii měkkého odstranění, kdy označíte zdrojový dokument (nebo záznam) pro odstranění, spustíte indexer, aby odstranil indexovaný obsah, a teprve po aktualizaci indexu fyzicky odstraníte zdrojový obsah. Pokud se zdrojový obsah odstraní nejprve, máte v indexu vyhledávání osamocené dokumenty . Chcete-li znovu vytvořit paritu mezi zdrojovým a indexovaným obsahem, musíte ručně odstranit osamocené dokumenty v indexu.

Následující odkazy obsahují další informace o detekci změn a odstranění jednotlivých zdrojů dat v úlohách řízených indexerem.

Identifikace konkrétních dokumentů pro odstranění

Všechny dokumenty jsou jednoznačně identifikovány klíčem dokumentu v indexu vyhledávání. Pokud chcete odstranit dokument, musíte určit, které pole je klíčem dokumentu, a zadat klíč v žádosti o odstranění.

Na webu Azure Portal můžete zobrazit pole jednotlivých indexů. Klíče dokumentu jsou řetězcová pole a označují se ikonou klíče, aby se snadněji zobrazovaly.

Vyhledání klíče dokumentu

Jakmile víte, které pole je klíčem dokumentu, můžete získat hodnotu klíče spuštěním dotazu, který vrátí pole klíče ve výsledcích hledání.

V tomto příkladu se vyhledávací řetězec používá k vyhledání dokumentu v indexu a příkaz select určuje, která pole jsou ve výsledcích. V tomto příkladu je klíčem dokumentu "HotelId".

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
}

Výsledky pro toto hledání klíčových slov jsou ve výchozím nastavení omezeny na prvních 50. Pokud dokument, který chcete odstranit, splňuje kritéria hledání, měli byste ho ve výsledcích vidět (a jeho klíč). Ujistěte se, že dotaz obsahuje popisné pole, které vám pomůže potvrdit, že máte správný dokument.

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

Jednoduchý řetězec je jednoduchý, ale pokud index používá pole s kódováním base-64 nebo pokud byly z nastavení vygenerovány parsingMode vyhledávací dokumenty, můžete pracovat s hodnotami, které neznáte. Pracujete-li se segmentovanými dokumenty vytvořenými indexerem, klíč dokumentu je často vygenerovaný "chunked_id" složený z dlouhé posloupnosti číslic a písmen.

Vyhledání konkrétního dokumentu

Teď, když máte klíč dokumentu, spusťte vyhledávací dotaz , který načte celý dokument. Pokud je dokument blokem dat, měli byste vidět ID nadřazeného dokumentu. Klíč dokumentu je součástí parametru dotazu.

První příklad vrátí hotel s hodnotou klíče dokumentu 18.

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

Druhý příklad vrátí segmentový dokument. Klíč dokumentu je chunk_id.

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

Odpověď z druhého příkladu obsahuje všechna pole, která byste měli zkontrolovat, abyste měli jistotu, že víte, co odstraňujete. Pole obsahující informace o rodiči jsou užitečná, pokud potřebujete ručně přeindexovat jeden nadřazený dokument do složek dílčích dokumentů v rámci indexu vyhledávání.

{
  "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> ]
}

Návod

Ke spuštění vyhledávacího dotazu použijte klienta REST, klientskou knihovnu sady Azure SDK nebo nástroj příkazového řádku . Azure Portal nepodporuje požadavky GET na dotaz.

Získání počtu dokumentů a metrik o úložišti

Než odstraníte dokumenty, získejte počáteční metriky pro počet a úložiště dokumentů indexu, abyste mohli později potvrdit odstranění.

Počet dokumentů a úložiště indexů můžete získat pomocí:

Tady je příklad odpovědi:

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

Odstranění jednoho dokumentu

  1. Použijte Documents - Index REST API s příkazem delete @search.action, abyste jej odstranili z indexu vyhledávání.

  2. Formulujte volání POST určující název indexu docs/index a koncový bod.

  3. Ujistěte se, že text požadavku obsahuje klíč dokumentu, který chcete odstranit.

    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. Odešlete požadavek.

    Následující tabulka vysvětluje různé stavové kódy jednotlivých dokumentů, které lze vrátit v odpovědi. Některé stavové kódy označují problémy se samotným požadavkem, zatímco jiné označují dočasné chybové stavy. Druhý pokus byste měli opakovat po zpoždění.

    Stavový kód Meaning Opakovatelné Poznámky
    200 Dokument byl úspěšně odstraněn. není k dispozici Operace odstranění jsou idempotentní. To znamená, že i když klíč dokumentu v indexu neexistuje, při pokusu o operaci odstranění s tímto klíčem vznikne stavový kód 200.
    400 V dokumentu došlo k chybě, která znemožňovala odstranění dokumentu. Ne Chybová zpráva v odpovědi obsahuje podrobnosti.
    422 Index je dočasně nedostupný, protože se v něm aktualizoval příznak allowIndexDowntime nastavený na hodnotu true. Ano Počkejte, až bude index k dispozici.
    503 Vaše vyhledávací služba je dočasně nedostupná, pravděpodobně kvůli vysokému zatížení. Ano V takovém případě by váš kód měl před opakováním počkat, jinak riskujete prodloužení nedostupnosti služby.

    Poznámka:

    Pokud váš klientský kód často narazí na odpověď 207, je jedním z možných důvodů, proč je systém zatížený. Můžete to potvrdit tak, že zkontrolujete statusCode vlastnost 503. Pokud ano, doporučujeme omezit požadavky na indexování. Jestliže indexovací provoz neklesne, může systém začít odmítat všechny požadavky se stavovou chybou 503.

  5. Odstranění můžete potvrdit opětovným odesláním vyhledávacího dotazu . Měla by se zobrazit zpráva o tom, že dokument 404 nebyl nalezen.

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

Reference:Documents – index

Úspěšný požadavek na odstranění vrátí http 200 (OK). Text odpovědi obsahuje stav pro každý dokument:

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

Hromadné odstranění dokumentů

  1. Použijte Documents - Index REST API s příkazem delete @search.action, abyste jej odstranili z indexu vyhledávání. Formulujte volání POST určující název indexu docs/index a koncový bod.

  2. Ujistěte se, že text požadavku obsahuje klíče všech dokumentů, které chcete odstranit.

    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"
        }
      ]
    }
    
  • Limity skupin: Doporučujeme omezit skupiny na 1 000 dokumentů nebo přibližně 16 MB na požadavek, aby se zajistil optimální výkon.

  • Idempotency: Odstranění je idempotentní; Pokud se pokusíte odstranit ID dokumentu, které neexistuje, rozhraní API stále vrátí stav 200 OK.

  • Latence: Dokumenty se neodeberou vždy okamžitě z úložiště. Proces na pozadí provede fyzické odstranění každých několik minut.

  • Vektorové úložiště: Odstranění dokumentů okamžitě nevyvolá kvóty vektorového úložiště. Fyzické odstranění trvá několik minut. K okamžitému relamaci vektorového prostoru možná budete muset index vypustit a znovu sestavit.

Reference:Documents – index

Ověření odstranění dokumentu

Po odstranění dokumentů ověřte, že odstranění proběhlo úspěšně.

  1. Na webu Azure Portal otevřete stránku Přehled vyhledávací služby.
  2. Vyberte Správu vyhledávání>Indexy.
  3. Zkontrolujte sloupec Počet dokumentů pro váš index.
  4. Počkejte několik minut a aktualizujte, pokud se počet nezměnil (odstranění je asynchronní).

Odstranění dokumentu okamžitě nevybíná místo v indexu. Proces na pozadí provede fyzické odstranění každých několik minut. Bez ohledu na to, jestli k vrácení statistik indexu použijete Azure Portal nebo rozhraní GET Statistics API, můžete očekávat malé zpoždění před tím, než se odstranění projeví na webu Azure Portal a metrikách rozhraní API.

Řešení potíží s odstraněním dokumentu

Následující tabulka uvádí běžné problémy při odstraňování dokumentů a jejich řešení.

Problém Příčina Řešení
Počet dokumentů beze změny Odstranění je asynchronní. Proces na pozadí se spouští každých několik minut. Počkejte 2 až 3 minuty a aktualizujte. Znovu zkontrolujte statistiky indexu.
400 – Chybný požadavek Neplatný klíč dokumentu nebo poškozený text požadavku Ověřte, že název pole klíče dokumentu odpovídá schématu indexu. Zkontrolujte syntaxi JSON.
403 Zakázáno Nedostatečná oprávnění. Použijte klíč rozhraní API pro správu nebo se ujistěte, že vaše identita má roli Přispěvatel dat indexu vyhledávání.
404 Nenalezena v indexu Název indexu je nesprávný nebo neexistuje. Ověřte název indexu v adrese URL požadavku.
Neuvolněno úložiště Fyzické odstranění probíhá asynchronně na pozadí. Počkejte několik minut. Pro okamžitou relamaci vektorového úložiště odstraňte a znovu sestavte index.
Osamocené dokumenty zůstávají Zdrojové dokumenty se odstranily před spuštěním indexeru s detekcí odstranění. Ručně odstraňte sirotčí dokumenty pomocí jejich dokumentových klíčů.

Viz také