Vyřazení a opětovné sestavení indexu ve službě Azure AI Search

Tento článek vysvětluje, jak odstranit a znovu sestavit index Azure AI Search. Vysvětluje okolnosti, za kterých se vyžadují opětovné sestavení, a poskytuje doporučení pro zmírnění dopadů opětovného sestavení na probíhající požadavky dotazů. Pokud potřebujete často vytvářet nové sestavení, doporučujeme použít aliasy indexů , které usnadňují prohození indexu, na který aplikace odkazuje.

Během aktivního vývoje se při iterování návrhu indexů běžně odstraňují a znovu sestavují indexy. Většinavývojářůch dat pracuje s malým reprezentativním vzorkem dat, aby bylo rychlejší.

Úpravy vyžadující opětovné sestavení

Následující tabulka uvádí úpravy, které vyžadují přetažení indexu a opětovné sestavení.

Akce Popis
Odstranění pole Pokud chcete fyzicky odebrat všechna trasování pole, musíte index znovu sestavit. Pokud okamžité opětovné sestavení není praktické, můžete upravit kód aplikace tak, aby přesměroval přístup mimo zastaralé pole, nebo použít vyhledávací pole a vybrat parametry dotazu, abyste zvolili, která pole se prohledávají a vrací. Definice a obsah pole fyzicky zůstanou v indexu až do dalšího opětovného sestavení, když použijete schéma, které dané pole vynechá.
Změna definice pole Revize názvu pole, datového typu nebo konkrétních atributů indexu (prohledávatelné, filtrovatelné, řaditelné, omezující) vyžadují úplné opětovné sestavení.
Přiřazení analyzátoru k poli Analyzátory jsou definovány v indexu, přiřazeny k polím a následně vyvolány během indexování, aby informovaly, jak se tokeny vytvářejí. Do indexu můžete kdykoli přidat novou definici analyzátoru, ale při vytváření pole můžete přiřadit pouze analyzátor. To platí pro vlastnosti analyzátoru i indexAnalyzeru. Vlastnost searchAnalyzer je výjimka (tuto vlastnost můžete přiřadit existujícímu poli).
Aktualizace nebo odstranění definice analyzátoru v indexu Existující konfiguraci analyzátoru (analyzátor, tokenizátor, filtr tokenů nebo znakový filtr) v indexu nemůžete odstranit ani změnit, pokud znovu neskonstruujete celý index.
Přidání pole do navrhovače Pokud pole již existuje a chcete ho přidat do konstruktoru Návrhy, znovu vytvořte index.
Přepnout úrovně Místní upgrady se nepodporují. Pokud potřebujete větší kapacitu, vytvořte novou službu a znovu sestavte indexy od začátku. K automatizaci tohoto procesu můžete použít ukázkový kód index-backup-restore v tomto ukázkovém úložišti Azure AI Search .NET. Tato aplikace zálohuje index do řady souborů JSON a pak index znovu vytvoří ve vámi zadané vyhledávací službě.

Úpravy bez požadavku na opětovné sestavení

Mnoho dalších úprav lze provést bez dopadu na existující fyzické struktury. Konkrétně následující změny nevyžadují opětovné sestavení indexu. U těchto změn můžete aktualizovat existující definici indexu pomocí změn.

  • Umožňuje přidat nové pole.
  • Nastavení atributu pro načtení u existujícího pole
  • Aktualizace funkce SearchAnalyzer u pole, které má existující indexAnalyzer
  • Přidání nové definice analyzátoru do indexu (které lze použít pro nová pole)
  • Přidání, aktualizace nebo odstranění hodnoticího profilu
  • Přidání, aktualizace nebo odstranění nastavení CORS
  • Přidání, aktualizace nebo odstranění synonyma Mapy
  • Přidání, aktualizace nebo odstranění sémantických konfigurací

Když přidáte nové pole, stávající indexované dokumenty mají pro nové pole hodnotu null. Při budoucí aktualizaci dat nahradí hodnoty z externích zdrojových dat hodnoty null přidané službou Azure AI Search. Další informace o aktualizaci obsahu indexu naleznete v tématu Přidání, aktualizace nebo odstranění dokumentů.

Opětovné sestavení indexu

Během vývoje se schéma indexu často mění. Můžete ho naplánovat vytvořením indexů, které se dají rychle odstranit, znovu vytvořit a znovu načíst pomocí malé reprezentativní datové sady.

Pro aplikace, které jsou již v produkčním prostředí, doporučujeme vytvořit nový index, který běží vedle existujícího indexu, aby nedocházelo k výpadkům dotazů. Kód aplikace poskytuje přesměrování na nový index.

  1. Zkontrolujte místo. Search podléhají maximálnímu počtu indexů, které se liší podle úrovně služby. Ujistěte se, že máte prostor pro druhý index.

  2. Určete, jestli se vyžaduje opětovné sestavení. Pokud jenom přidáváte pole nebo měníte část indexu, která nesouvisí s poli, budete možná moct definici jednoduše aktualizovat bez odstranění, opětovného vytvoření a jeho úplné opětovného načtení.

  3. Získejte definici indexu pro případ, že ji potřebujete pro budoucí referenci.

  4. Za předpokladu, že nespustíte nové a staré indexy vedle sebe, přetáhněte existující index.

    Všechny dotazy, které cílí na tento index, se okamžitě zahodí. Mějte na paměti, že odstranění indexu je nevratné, zničení fyzického úložiště pro kolekci polí a dalších konstruktorů. Než ho vyhodíte, pozastavte se nad důsledky.

  5. Vytvořte revidovaný index, ve kterém text požadavku obsahuje změněné nebo upravené definice polí.

  6. Načtěte index s dokumenty z externího zdroje.

Při vytváření indexu je fyzické úložiště přiděleno pro každé pole ve schématu indexu s invertovaným indexem vytvořeným pro každé prohledávatelné pole. Pole, která nelze prohledávat, je možné použít ve filtrech nebo výrazech, ale nemají invertované indexy a nejsou prohledávatelná jako fulltextová nebo přibližná. Při opětovném sestavení indexu se tyto invertované indexy odstraní a znovu vytvoří na základě schématu indexu, které zadáte.

Při načtení indexu se invertovaný index každého pole naplní všemi jedinečnými tokenizovanými slovy z každého dokumentu s mapou na odpovídající ID dokumentu. Například při indexování sady dat hotelů může invertovaný index vytvořený pro pole Město obsahovat termíny pro Seattle, Portland atd. Dokumenty, které obsahují Seattle nebo Portland v poli Město, by měly id dokumentu uvedené společně s termínem. V každé operaci Přidat, Aktualizovat nebo Odstranit se odpovídajícím způsobem aktualizují termíny a seznam ID dokumentu.

Vyrovnávání zatížení

Indexování se nespustí na pozadí, ale vyhledávací služba vyrovnává všechny úlohy indexování s průběžnými dotazy. Během indexování můžete sledovat požadavky dotazů na portálu, abyste zajistili, že se dotazy dokončí včas.

Pokud úlohy indexování představují nepřijatelné úrovně latence dotazů, proveďte analýzu výkonu a projděte si tyto tipy k výkonu, které vám pomůžou potenciální zmírnění rizik.

Zkontrolovat aktualizace

Jakmile se načte první dokument, můžete začít dotazovat index. Pokud znáte ID dokumentu, vrátí rozhraní REST API pro vyhledávání dokumentu konkrétní dokument. Pro širší testování byste měli počkat, až se index plně načte, a pak pomocí dotazů ověřte kontext, který očekáváte.

K vyhledání aktualizovaného obsahu můžete použít Průzkumníka služby Search nebo klienta REST.

Pokud jste pole přidali nebo přejmenovali, použijte $select k vrácení daného pole: search=*&$select=document-id,my-new-field,some-old-field&$count=true

Viz také