Vytvoření indexu ve službě Azure AI Search

Ve službě Azure AI Search dotazy cílí na prohledávatelný text v indexu vyhledávání.

V tomto článku se dozvíte, jak definovat a publikovat index vyhledávání. Vytvoření indexu vytvoří fyzické datové struktury ve vyhledávací službě. Jakmile definice indexu existuje, načtení indexu následuje jako samostatný úkol.

Požadavky

  • Oprávnění k zápisu Oprávnění je možné udělit prostřednictvím klíče rozhraní API správce v žádosti. Případně pokud používáte řízení přístupu na základě role, odešlete žádost jako člena role Přispěvatel vyhledávání.

  • Pochopení dat, která chcete indexovat. Vytvoření indexu je cvičení definice schématu, takže byste měli mít jasnou představu o tom, která zdrojová pole chcete prohledávat, načíst, filtrovatelné, fasetové a řaditelné (pokyny najdete v kontrolním seznamu schématu).

    Musíte mít také jedinečné pole ve zdrojových datech, které lze použít jako klíč dokumentu (nebo ID) v indexu.

  • Stabilní umístění indexu. Přesunutí existujícího indexu do jiné vyhledávací služby se nepodporuje. Znovu si projděte požadavky aplikace a ujistěte se, že vaše stávající vyhledávací služba, její kapacita a umístění jsou dostatečné pro vaše potřeby.

  • Nakonec všechny úrovně služby mají omezení indexu počtu objektů, které můžete vytvořit. Pokud například experimentujete na úrovni Free, můžete mít v daném okamžiku pouze tři indexy. V samotném indexu platí omezení počtu složitých polí a kolekcí.

Klíče dokumentu

Index vyhledávání má jedno povinné pole: klíč dokumentu. Klíč dokumentu je jedinečný identifikátor hledaného dokumentu. Ve službě Azure AI Search musí být řetězec a musí pocházet z jedinečných hodnot ve zdroji dat, který poskytuje obsah, který se má indexovat. Vyhledávací služba negeneruje klíčové hodnoty, ale v některých scénářích (například indexeru tabulek Azure) syntetizuje existující hodnoty a vytvoří jedinečný klíč pro indexované dokumenty.

Během přírůstkového indexování, kde se indexuje nový a aktualizovaný obsah, se přidají příchozí dokumenty s novými klíči, zatímco příchozí dokumenty s existujícími klíči se buď sloučí, nebo přepíšou v závislosti na tom, jestli jsou pole indexu null nebo naplněná.

Kontrolní seznam schématu

Tento kontrolní seznam vám pomůže při rozhodování o návrhu indexu vyhledávání.

  1. Zkontrolujte zásady vytváření názvů, aby názvy indexů a polí odpovídaly pravidlům pojmenování.

  2. Zkontrolujte podporované datové typy. Datový typ ovlivňuje způsob použití pole. Číselný obsah je například filtrovatelný, ale není prohledávatelný fulltext. Nejběžnějším datovým typem je Edm.String prohledávatelný text, který se tokenizuje a dotazuje pomocí fulltextového vyhledávacího webu.

  3. Identifikace klíče dokumentu Klíč dokumentu je požadavek na index. Jedná se o jedno řetězcové pole, které je naplněné ze zdrojového datového pole, které obsahuje jedinečné hodnoty. Pokud například indexujete ze služby Blob Storage, cesta k úložišti metadat se často používá jako klíč dokumentu, protože jednoznačně identifikuje každý objekt blob v kontejneru.

  4. Identifikujte pole ve zdroji dat, která přispívají k prohledávatelným obsahu v indexu. Prohledávatelný obsah obsahuje krátké nebo dlouhé řetězce, které se dotazují pomocí fulltextového vyhledávacího webu. Pokud je obsah podrobný (malé fráze nebo větší bloky dat), experimentujte s různými analyzátory a zjistěte, jak se text tokenizuje.

    Přiřazení atributů polí určují chování vyhledávání i fyzické znázornění indexu ve vyhledávací službě. Určení způsobu zadání polí je iterativní proces pro mnoho zákazníků. Pokud chcete iterace urychlit, začněte ukázkovými daty, abyste je mohli snadno vypustit a znovu sestavit.

  5. Určete, která zdrojová pole je možné použít jako filtry. Číselný obsah a krátká textová pole, zejména pole s opakujícími se hodnotami, jsou dobrou volbou. Při práci s filtry nezapomeňte:

    • Filtrovatelná pole se dají volitelně použít v fasetové navigaci.

    • Filtrovatelná pole se vrátí v libovolném pořadí, proto zvažte možnost jejich řazení.

  6. Určete, jestli se má použít výchozí analyzátor ("analyzer": null) nebo jiný analyzátor. Analyzátory se používají k tokenizaci textových polí během indexování a provádění dotazů.

    U vícejazyčných řetězců zvažte analyzátor jazyka.

    U řetězců s dělením slov nebo speciálních znaků zvažte specializované analyzátory. Jedním z příkladů je klíčové slovo , které zachází s celým obsahem pole jako s jedním tokenem. Toto chování je užitečné pro data, jako jsou PSČ, ID a některé názvy produktů. Další informace najdete v tématu Částečné hledání termínů a vzorů se speciálními znaky.

Poznámka:

Fulltextové vyhledávání se provádí přes termíny, které jsou tokenizovány během indexování. Pokud se vašim dotazům nepodaří vrátit očekávané výsledky, otestujte tokenizaci a ověřte, že řetězec skutečně existuje. Můžete vyzkoušet různé analyzátory řetězců a zjistit, jak se tokeny vytvářejí pro různé analyzátory.

Vytvoření indexu

Až budete připraveni vytvořit index, použijte vyhledávacího klienta, který může požadavek odeslat. K počátečnímu vývoji a testování konceptu můžete použít azure Portal nebo rozhraní REST API.

Během vývoje naplánujte časté opětovné sestavení. Vzhledem k tomu, že se ve službě vytvářejí fyzické struktury, je pro mnoho úprav nezbytné vyřazení a opětovné vytvoření indexů . Můžete zvážit, že budete pracovat s podmnožinou dat, aby opětovné sestavení bylo rychlejší.

Návrh indexu prostřednictvím portálu vynucuje požadavky a pravidla schématu pro konkrétní datové typy, například zakázání funkcí fulltextového vyhledávání u číselných polí.

  1. Přihlaste se k portálu Azure.

  2. Na stránce Přehled vyhledávací služby zvolte jednu z možností pro vytvoření indexu vyhledávání:

    Průvodce je komplexní pracovní postup, který vytvoří indexer, zdroj dat a dokončený index. Načte také data. Pokud je to víc, než chcete, použijte místo toho přidat index .

Následující snímek obrazovky ukazuje, kde se na panelu příkazů zobrazí přidání indexu a importu dat . Po vytvoření indexu ho můžete znovu najít na kartě Indexy .

Příkaz Přidat index

Tip

Po vytvoření indexu na portálu můžete zkopírovat reprezentaci JSON a přidat ho do kódu aplikace.

Nastavení corsOptions pro dotazy mezi zdroji

Schémata indexu obsahují oddíl pro nastavení corsOptions. JavaScript na straně klienta ve výchozím nastavení nemůže volat žádná rozhraní API, protože prohlížeče brání všem požadavkům mezi zdroji. Pokud chcete povolit dotazy mezi zdroji prostřednictvím indexu, povolte CORS (sdílení prostředků mezi zdroji) nastavením atributu corsOptions . Z bezpečnostních důvodů podporují CORS jenom rozhraní API dotazů.

"corsOptions": {
  "allowedOrigins": [
    "*"
  ],
  "maxAgeInSeconds": 300

Pro CORS je možné nastavit následující vlastnosti:

  • allowedOrigins (povinné): Toto je seznam původů, které mají povolený přístup k vašemu indexu. Kód JavaScriptu obsluhované z těchto zdrojů může dotazovat index (za předpokladu, že volající poskytuje platný klíč nebo má oprávnění). Každý původ je obvykle ve formuláři protocol://<fully-qualified-domain-name>:<port> , i když <port> je často vynechán. Další informace najdete v tématu Sdílení prostředků mezi zdroji (Wikipedie).</a0>

    Pokud chcete povolit přístup ke všem zdrojům, zahrňte * jako jednu položku do pole allowedOrigins . To není doporučený postup pro produkční vyhledávací služby , ale často je užitečný pro vývoj a ladění.

  • maxAgeInSeconds (volitelné): Prohlížeče používají tuto hodnotu k určení doby trvání (v sekundách) pro ukládání předběžných odpovědí CORS do mezipaměti. Musí to být nezáporné celé číslo. Delší období mezipaměti poskytuje lepší výkon, ale prodlužuje dobu, po kterou se zásady CORS musí projevit. Pokud tato hodnota není nastavená, použije se výchozí doba trvání 5 minut.

Povolené aktualizace existujících indexů

Vytvořit index vytvoří ve vyhledávací službě fyzické datové struktury (soubory a invertované indexy). Po vytvoření indexu může vaše schopnost ovlivnit změny pomocí aktualizačního indexu na základě toho, jestli vaše úpravy zneplatní tyto fyzické struktury. Většinu atributů pole nelze po vytvoření pole v indexu změnit.

Alternativně můžete vytvořit alias indexu, který slouží jako stabilní odkaz v kódu aplikace. Místo aktualizace kódu můžete aktualizovat alias indexu tak, aby odkazovat na novější verze indexu.

Pokud chcete minimalizovat četnost změn v procesu návrhu, následující tabulka popisuje, které prvky jsou ve schématu pevné a flexibilní. Změna pevného prvku vyžaduje opětovné sestavení indexu, zatímco flexibilní prvky lze kdykoli změnit, aniž by to mělo vliv na fyzickou implementaci.

Element (Prvek) Dá se aktualizovat?
Název No
Klíč No
Názvy a typy polí No
Atributy pole (prohledávatelné, filtrovatelné, facetable, řazení) No
Atribut pole (retrievable) Ano
Analyzer Do indexu můžete přidat a upravit vlastní analyzátory. Pokud jde o přiřazení analyzátoru u řetězcových polí, můžete upravit searchAnalyzerpouze . Všechna ostatní přiřazení a úpravy vyžadují opětovné sestavení.
Profily skórování Ano
Moduly pro návrhy No
sdílení prostředků mezi zdroji (CORS) Ano
Šifrování Ano

Další kroky

Pomocí následujících odkazů se seznamte s načtením indexu s daty nebo rozšířením indexu s mapou synonym.