Přidání vlastních analyzátorů do polí řetězců v indexu služby Azure Kognitivní hledání

Vlastní analyzátor je uživatelsky definovaná kombinace provádějících tokenizaci, jednoho nebo více filtrů tokenů a jednoho nebo více filtrů znaků zadaných v indexu vyhledávání a následně odkazováno na definice polí, které vyžadují vlastní analýzu. Provádějících tokenizaci zodpovídá za rozdělení textu na tokeny a filtry tokenů pro úpravu tokenů emitovaných provádějících tokenizaci. Filtry znaků připraví vstupní text před jeho zpracováním pomocí provádějících tokenizaci. Koncepty a příklady najdete v tématu analyzátory v Azure kognitivní hledání.

Vlastní analyzátor vám umožní řídit proces převodu textu na indexovaelné a prohledávatelný tokeny tím, že vám umožní vybrat typy analýz nebo filtrování, které se mají vyvolat, a pořadí, ve kterém se vyskytují.

Vytvořte a přiřaďte vlastní analyzátor, pokud žádný z výchozích (Standard Lucence), předdefinované nebo analyzátory jazyka nestačí pro vaše potřeby. Pokud chcete použít vestavěný analyzátor s vlastními možnostmi, můžete také vytvořit vlastní analyzátor. Pokud byste například chtěli změnit maxTokenLength na standard, vytvořili jste vlastní analyzátor s uživatelem definovaným názvem, který tuto možnost nastaví.

Mezi scénáře, které můžou být užitečné pro vlastní analyzátory, patří:

  • Použití filtrů znaků k odebrání kódu HTML před tím, než jsou textové vstupy vypsány tokeny, nebo nahraďte určité znaky nebo symboly.

  • Fonetické vyhledávání. Přidejte fonetický filtr, který umožní hledání na základě zvukového slova, nikoli způsobu jeho pravopisu.

  • Zakáže lexikální analýzu. Pomocí analyzátoru klíčového slova můžete vytvořit hledaná pole, která nejsou analyzovaná.

  • Rychlé hledání předpony a přípon Přidejte filtr tokenů pro Edge N-gram k indexům předpon slov, aby se povolila rychlá shoda předpony. Zkombinujete ho pomocí filtru reverzních tokenů, aby se shodoval s příponou.

  • Vlastní tokenizace Například můžete použít prázdné znaky provádějících tokenizaci k rozdělení vět na tokeny pomocí prázdného znaku jako oddělovače.

  • Skládání ASCII. Přidáním standardního filtru skládání ASCII můžete normalizovat diakritická znaménka, jako je ö nebo ê, ve hledaných výrazech.

Poznámka

Vlastní analyzátory nejsou vystavené ve Azure Portal. Jediným způsobem, jak přidat vlastní analyzátor, je kód, který definuje index.

Vytvoření vlastního analyzátoru

Pokud chcete vytvořit vlastní analyzátor, zadejte ho v části analyzátory v indexu v době návrhu a pak na něj odkázat pole s možností prohledávání, Edm. String buď pomocí vlastnosti Analyzer, nebo z dvojice "indexAnalyzer" a "searchAnalyzer".

Definice analyzátoru zahrnuje název, typ, jeden nebo více filtrů znaků, maximálně jeden provádějících tokenizaci a jeden nebo více filtrů tokenů pro zpracování po pořizování tokenů. Filtry znaků jsou aplikovány před tokenizace. Filtry tokenů a filtry znaků jsou aplikovány zleva doprava.

  • Názvy ve vlastním analyzátoru musí být jedinečné a nesmí být stejné jako žádné integrované analyzátory, tokenizátory musíte nejdřív, filtry tokenů nebo filtry znaků. Musí obsahovat jenom písmena, číslice, mezery, pomlčky a podtržítka, může začínat a končit jenom alfanumerickými znaky a je omezený na 128 znaků.

  • Typ musí být #Microsoft. Azure. Search. CustomAnalyzer.

  • "charFilters" může být jeden nebo více filtrů z filtrů znakůzpracovaných před vyřazením, v uvedeném pořadí. Některé filtry znaků mají možnosti, které lze nastavit v části "charFilter". Filtry znaků jsou volitelné.

  • "provádějících tokenizaci" je právě jeden provádějících tokenizaci. Hodnota je povinná. Pokud potřebujete více než jeden provádějících tokenizaci, můžete vytvořit více vlastních analyzátorů a přiřadit je podle pole v rámci schématu indexu.

  • "tokenFilters" může být jedním nebo více filtry z filtrů tokenůzpracovaných po tokenizace v zadaném pořadí. Pro filtry tokenů, které mají možnosti, přidejte k určení konfigurace oddíl "tokenFilter". Filtry tokenů jsou nepovinné.

Analyzátory nesmí poskytovat tokeny delší než 300 znaků nebo se indexování nezdaří. Pro zkrácení dlouhého tokenu nebo jeho vyloučení použijte TruncateTokenFilter a LengthTokenFilter . Reference najdete v tématu filtry tokenů .

"analyzers":(optional)[
   {
      "name":"name of analyzer",
      "@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
      "charFilters":[
         "char_filter_name_1",
         "char_filter_name_2"
      ],
      "tokenizer":"tokenizer_name",
      "tokenFilters":[
         "token_filter_name_1",
         "token_filter_name_2"
      ]
   },
   {
      "name":"name of analyzer",
      "@odata.type":"#analyzer_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"charFilters":(optional)[
   {
      "name":"char_filter_name",
      "@odata.type":"#char_filter_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"tokenizers":(optional)[
   {
      "name":"tokenizer_name",
      "@odata.type":"#tokenizer_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"tokenFilters":(optional)[
   {
      "name":"token_filter_name",
      "@odata.type":"#token_filter_type",
      "option1":value1,
      "option2":value2,
      ...
   }
]

V rámci definice indexu můžete umístit tuto část kamkoli do těla žádosti o vytvoření indexu, ale obvykle na konci:

{
  "name": "name_of_index",
  "fields": [ ],
  "suggesters": [ ],
  "scoringProfiles": [ ],
  "defaultScoringProfile": (optional) "...",
  "corsOptions": (optional) { },
  "analyzers":(optional)[ ],
  "charFilters":(optional)[ ],
  "tokenizers":(optional)[ ],
  "tokenFilters":(optional)[ ]
}

Definice analyzátoru je součástí většího indexu. Definice pro filtry znaků, tokenizátory musíte nejdřív a filtry tokenů jsou přidány do indexu pouze v případě, že nastavujete vlastní možnosti. Pokud chcete použít existující filtr nebo provádějících tokenizaci tak, jak jsou, zadejte ho podle názvu v definici analyzátoru. Další informace najdete v tématu vytvoření indexu (REST). Další příklady najdete v tématu Přidání analyzátorů v Azure kognitivní hledání.

Testování vlastních analyzátorů

Pomocí nástroje Test Analyzer (REST) můžete zjistit, jak analyzátor přerušuje daný text na tokeny.

Žádost

  POST https://[search service name].search.windows.net/indexes/[index name]/analyze?api-version=[api-version]
    Content-Type: application/json
    api-key: [admin key]

  {
     "analyzer":"my_analyzer",
     "text": "Vis-à-vis means Opposite"
  }

Response (Odpověď)

  {
    "tokens": [
      {
        "token": "vis_a_vis",
        "startOffset": 0,
        "endOffset": 9,
        "position": 0
      },
      {
        "token": "vis_à_vis",
        "startOffset": 0,
        "endOffset": 9,
        "position": 0
      },
      {
        "token": "means",
        "startOffset": 10,
        "endOffset": 15,
        "position": 1
      },
      {
        "token": "opposite",
        "startOffset": 16,
        "endOffset": 24,
        "position": 2
      }
    ]
  }

Aktualizace vlastních analyzátorů

Jakmile je definován analyzátor, provádějících tokenizaci, filtr tokenů nebo filtr znaků, nelze jej změnit. Nové lze přidat do existujícího indexu pouze v případě, že allowIndexDowntime je příznak nastaven na hodnotu true v žádosti o aktualizaci indexu:

PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true

Tato operace převezme váš index po dobu nejméně pár sekund do offline režimu, což způsobí, že vaše požadavky na indexování a dotazy selžou. Dostupnost a zápis indexu může být po několik minut od aktualizace indexu nebo delší pro hodně velkých indexů narušeno, ale tyto účinky jsou dočasné a mohou se na jejich základě vyřešit sami.

Předdefinované analyzátory

Pokud chcete použít vestavěný analyzátor s vlastními možnostmi, je vytvoření vlastního analyzátoru mechanizmus, podle kterého tyto možnosti zadáte. Naproti tomu, pokud chcete použít vestavěný analyzátor tak, jak je, stačí na definici pole odkazovat podle názvu .

analyzer_name analyzer_type 1 Popis a možnosti
klíčové slovo (typ platí pouze v případě, že jsou k dispozici možnosti) Zachází s celým obsahem pole jako s jedním tokenem. To je užitečné pro data, jako jsou kódy PSČ, ID a některé názvy produktů.
vzorku PatternAnalyzer Flexibilní oddělení textu do výrazů pomocí vzoru regulárního výrazu.

Možnosti

malá písmena (typ: bool) – určuje, zda jsou výrazy v malých písmenech. Výchozí hodnota je true.

vzor (typ: String) – vzor regulárního výrazu, který odpovídá oddělovačům tokenů. Výchozí hodnota je \W+ , která odpovídá znakům jiným než Word.

Flags (Type: String) – příznaky regulárního výrazu. Výchozí hodnota je prázdný řetězec. Povolené hodnoty: CANON_EQ, CASE_INSENSITIVE, komentáře, DOTALL, LITERÁLy, VÍCEŘÁDKOVé UNICODE_CASE, UNIX_LINES

stopslova (typ: pole řetězců) – seznam stopslova. Výchozí hodnota je prázdný seznam.
pouh (typ platí pouze v případě, že jsou k dispozici možnosti) Vydělí text bez písmen a převede je na malá písmena.
standardní
(Označuje se také jako standardní. Lucene)
StandardAnalyzer Nástroj pro standardní Lucene, který se skládá ze standardního filtru provádějících tokenizaci, malých písmen a filtru stop.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu. Výchozí hodnota je 255. Tokeny delší než maximální délka jsou rozděleny. Maximální délka tokenu, kterou lze použít, je 300 znaků.

stopslova (typ: pole řetězců) – seznam stopslova. Výchozí hodnota je prázdný seznam.
standardasciifolding. Lucene (typ platí pouze v případě, že jsou k dispozici možnosti) Standard Analyzer s filtrem skládání ASCII.
Stop StopAnalyzer Vydělí text v nepísmenech, aplikuje na ně filtry pro malé a stopslovo tokeny.

Možnosti

stopslova (typ: pole řetězců) – seznam stopslova. Výchozím nastavením je předdefinovaný seznam pro angličtinu.
typy (typ platí pouze v případě, že jsou k dispozici možnosti) Analyzátor, který používá prázdné znaky provádějících tokenizaci. Tokeny, které jsou delší než 255 znaků, jsou rozděleny.

1 typy analyzátoru jsou vždycky pevně uvedené v kódu s "#Microsoft. Azure. Search" tak, že "PatternAnalyzer" by ve skutečnosti byly zadané jako "#Microsoft. Azure. Search. PatternAnalyzer". Odebrali jsme předponu pro zkrácení, ale ve vašem kódu se vyžaduje předpona.

Analyzer_type je k dispozici pouze pro analyzátory, které lze přizpůsobit. Pokud nejsou k dispozici žádné možnosti, stejně jako v případě analyzátoru klíčového slova není k dispozici žádný přidružený #Microsoft. typ Azure. Search.

Filtry znaků

Filtry znaků přidávají zpracování před tím, než řetězec dosáhne provádějících tokenizaci.

Kognitivní hledání podporuje filtry znaků v následujícím seznamu. Další informace o každé z nich najdete v referenčních informacích k rozhraní API pro Lucene.

char_filter_name char_filter_type 1 Popis a možnosti
html_strip (typ platí pouze v případě, že jsou k dispozici možnosti) Filtr znaků, který se pokusí vydělit konstrukce jazyka HTML.
mapování MappingCharFilter Filtr znaků, který aplikuje mapování definované s možností mapování Porovnávání je hladec (nejdelší porovnávání vzorů v daném bodu WINS). Nahrazení může být prázdný řetězec.

Možnosti

mapování (typ: pole řetězců) – seznam mapování v následujícím formátu: "A =>b" (všechny výskyty znaku "a" jsou nahrazeny znakem "b"). Povinná hodnota.
pattern_replace PatternReplaceCharFilter Filtr znaků, který nahradí znaky ve vstupním řetězci. Pomocí regulárního výrazu identifikuje sekvence znaků, které mají být zachovány, a vzor pro nahrazení, který identifikuje znaky, které mají být nahrazeny. Například input text = "AA BB AA BB", vzor = "(AA) \ \s + (BB)" nahrazení = "$ 1 # $2", výsledek = "AA # BB AA # BB".

Možnosti

Pattern (typ: String) – povinný.

náhrada (typ: String) – povinné.

1 typy filtru znaků jsou vždy předpony v kódu s "#Microsoft. Azure. Search" tak, že "MappingCharFilter" by ve skutečnosti byly zadány jako "#Microsoft. Azure. Search. MappingCharFilter. Odebrali jsme předponu, aby se snížila šířka tabulky, ale nezapomeňte ji zahrnout do kódu. Všimněte si, že char_filter_type je k dispozici pouze pro filtry, které lze přizpůsobit. Pokud neexistují žádné možnosti, jako je například případ s html_strip, není k dispozici žádný přidružený #Microsoft. typ Azure. Search.

Tokenizátory musíte nejdřív

Provádějících tokenizaci rozdělí souvislý text na sekvenci tokenů, jako je například rozdělení věty na slova nebo slovo do kořenových formulářů.

Kognitivní hledání podporuje tokenizátory musíte nejdřív v následujícím seznamu. Další informace o každé z nich najdete v referenčních informacích k rozhraní API pro Lucene.

tokenizer_name tokenizer_type 1 Popis a možnosti
klasický ClassicTokenizer Gramatika založená na provádějících tokenizaci, která je vhodná pro zpracování většiny dokumentů v evropském jazyce.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu. Výchozí: 255, maximum: 300. Tokeny delší než maximální délka jsou rozděleny.
edgeNGram EdgeNGramTokenizer Tokenizes vstup z okraje do n-gramů dané velikosti (y).

Možnosti

minGram (typ: int) – výchozí hodnota: 1, maximum: 300.

maxGram (typ: int) – výchozí: 2, maximum: 300. Musí být větší než minGram.

tokenChars (typ: pole řetězců) – třídy znaků, které mají být v tokenech uchovávány. Povolené hodnoty:
"Letter", "číslice", "prázdný", "interpunkce", "symbol". Výchozí hodnota je prázdné pole – zachová všechny znaky.
keyword_v2 KeywordTokenizerV2 Vygeneruje celý vstup jako jeden token.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu. Výchozí: 256, maximum: 300. Tokeny delší než maximální délka jsou rozděleny.
jednotky (typ platí pouze v případě, že jsou k dispozici možnosti) Vydělí text bez písmen. Tokeny, které jsou delší než 255 znaků, jsou rozděleny.
malá (typ platí pouze v případě, že jsou k dispozici možnosti) Vydělí text bez písmen a převede je na malá písmena. Tokeny, které jsou delší než 255 znaků, jsou rozděleny.
microsoft_language_tokenizer MicrosoftLanguageTokenizer Vydělí text pomocí pravidel specifických pro jazyk.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu, výchozí: 255, maximum: 300. Tokeny delší než maximální délka jsou rozděleny. Tokeny delší než 300 znaků jsou nejprve rozděleny na tokeny o délce 300 a následně jsou jednotlivé tokeny rozděleny na základě maxTokenLength sady.

isSearchTokenizer (typ: bool) – nastavte na hodnotu true, pokud se použije jako vyhledávací provádějících tokenizaci, nastavte na hodnotu false, pokud se používá jako indexovací provádějících tokenizaci.

Language (typ: String) – jazyk, který se má použít, výchozí "Angličtina". Mezi povolené hodnoty patří:
bengálština, Bulharština "," Katalánština "," chineseSimplified "," chineseTraditional "," chorvatština "," Čeština "," Dánština "," Holandština "," francouzština "," Němčina "," Řečtina "," gudžarátština "," Hindština "," Čeština "," Italština "korejština", "Malajština", "malajalámština", "maráthština", "norwegianBokmaal", "Polština", "portugalština", "portugueseBrazilian", "paňdžábština", "Rumunština", "ruština", "serbianCyrillic", "serbianLatin", "slovinské", "rumunský", "ruština", "tamilština", "Telugská", "španělština" ukrajinština "," urdština "," Vietnamština "
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Rozděluje text pomocí pravidel specifických pro jazyk a zkracuje slova na jejich základní formy.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu, výchozí hodnota: 255, maximum: 300. Tokeny, které jsou delší než maximální délka, jsou rozdělené. Tokeny delší než 300 znaků se nejprve rozdělí na tokeny o délce 300 a pak se každý z těchto tokenů rozdělí na základě sady maxTokenLength.

isSearchTokenizer (typ: bool) – Nastaví se na true, pokud se použije jako vyhledávací tokenizér, a pokud se použije jako tokenizér indexování, nastaví se na false.

language (type: string) – jazyk, který se má použít, výchozí "angličtina". Mezi povolené hodnoty patří:
"arabština", "kaskádová", "bulharština", "kaskádová", "čeština", "dánština", "nizozemština", "angličtina", "ština", "finština", "francouzština", "němčina", "řečtina", "guatiati", "hebrejština", "hindi", "maďarština", "zašedlá", "injekština", "italština", "kianada", "lotyština", "litevština", "malajština", "malayalam", "marathi", "norštinaBokmaal", "polština", "portugalština", "portugalština", "polák", "rutina", "ruština", "srbština", "srbskáLatin", "slovenština", "španělština", "švéd", "tamil", " telugu", "turkish", "turkish", "urdu"
nGram NGramTokenizer Tokenizuje vstup do n gramů dané velikosti nebo velikostí.

Možnosti

minGram (typ: int) – výchozí hodnota: 1, maximum: 300.

maxGram (typ: int) – výchozí hodnota: 2, maximum: 300. Musí být větší než minGram.

tokenChars (typ: pole řetězců) – třídy znaků, které se uchová v tokenech. Povolené hodnoty: "letter", "digit", "whitespace", "interpunkce", "symbol". Výchozí hodnota je prázdné pole – uchovává všechny znaky.
path_hierarchy_v2 PathHierarchyTokenizerV2 Tokenizér pro hierarchie jako cesta. Možnosti

oddělovač (typ: řetězec) – výchozí hodnota: '/.

replace (type: string) – pokud je nastavený, nahradí znak oddělovače. Výchozí hodnota je stejná jako hodnota oddělovače.

maxTokenLength (typ: int) – maximální délka tokenu. Výchozí hodnota: 300, maximum: 300. Cesty delší než maxTokenLength se ignorují.

reverse (typ: bool) – Pokud je true, vygeneruje token v obráceném pořadí. Výchozí hodnota: false.

skip (typ: bool) – Počáteční tokeny, které se přeskočí. Výchozí hodnota je 0.
Vzor PatternTokenizer Tento tokenizér používá porovnávání vzorů regulárních výrazů k vytvoření jedinečných tokenů.

Možnosti

pattern (typ: řetězec) – vzor regulárního výrazu, který odpovídá oddělovačům tokenů. Výchozí hodnota je \W+ , která odpovídá znakům, které nejsou ve slovech.

flags (type: string) – příznaky regulárního výrazu. Výchozí hodnota je prázdný řetězec. Povolené hodnoty: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES

group (typ: int) – skupina, která se má extrahovat do tokenů. Výchozí hodnota je -1 (rozdělení).
standard_v2 StandardTokenizerV2 Přeruší text následující za pravidly segmentace textu v kódu Unicode.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu. Výchozí hodnota: 255, maximum: 300. Tokeny, které jsou delší než maximální délka, jsou rozdělené.
uax_url_email UaxUrlEmailTokenizer Tokenizuje adresy URL a e-maily jako jeden token.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu. Výchozí hodnota: 255, maximum: 300. Tokeny, které jsou delší než maximální délka, jsou rozdělené.
Mezery (typ se použije jenom v případě, že jsou dostupné možnosti.) Rozdělí text na prázdné znaky. Tokeny delší než 255 znaků jsou rozdělené.

1 Typy tokenizéru mají vždy předponu v kódu #Microsoft.Azure.Search tak, aby "ClassicTokenizer" byl ve skutečnosti zadaný jako "#Microsoft.Azure.Search.ClassicTokenizer". Předponu jsme odebrali, aby se snížila šířka tabulky, nezapomeňte ji ale zahrnout do kódu. Všimněte si, tokenizer_type je k dispozici pouze pro tokenizační metody, které lze přizpůsobit. Pokud neexistují žádné možnosti, jako je tomu u tokenizátoru dopisů, k typu #Microsoft.Azure.Search přidružená žádná.

Filtry tokenů

Filtr tokenů slouží k odfiltrování nebo úpravě tokenů generovaných tokenizérem. Můžete například zadat filtr malými písmeny, který převede všechny znaky na malá. Ve vlastním analyzátoru můžete mít více filtrů tokenů. Filtry tokenů jsou spouštěné v pořadí, ve kterém jsou uvedeny.

V následující tabulce jsou filtry tokenů implementované pomocí Apache Lucene propojené s dokumentací k rozhraní Lucene API.

token_filter_name token_filter_type 1 Popis a možnosti
arabic_normalization (typ se použije jenom v případě, že jsou dostupné možnosti.) Filtr tokenů, který používá arabštinu normalizéru k normalizaci ortografie.
Apostrof (typ se použije jenom v případě, že jsou dostupné možnosti.) Všechny znaky za apostrofem (včetně samotného apostrofu) se zúží.
asciifolding (uživatelské rozhraní ascii) AsciiFoldingTokenFilter Převede abecední, číselné a symbolické znaky Unicode, které nejsou v prvních 127 znacích ASCII (blok "Základní latinka" Unicode) na jejich ekvivalenty ASCII, pokud existuje.

Možnosti

preserveOriginal (typ: bool) – Pokud je true, zachová se původní token. Výchozí hodnotou je hodnota false.
cjk_bigram CjkBigramTokenFilter Vytvoří bigramy termínů CJK, které se generují z StandardTokenizer.

Možnosti

ignoreScripts (typ: pole řetězců) – skripty, které se budou ignorovat. Mezi povolené hodnoty patří: "hana", " přiřa", "katakana", "hangul". Výchozí hodnota je prázdný seznam.

output Data (typ: bool) – Nastavte na true, pokud chcete vždy zobrazit výstup v jednogramech i bigramech. Výchozí hodnotou je hodnota false.
cjk_width (typ se použije jenom v případě, že jsou dostupné možnosti.) Normalizuje rozdíly v šířce CJK. Přeloží varianty ASCII s plnou šířkou na ekvivalentní základní latinku a varianty Katakana s poloviční šířkou na ekvivalentní kana.
klasický (typ se použije jenom v případě, že jsou dostupné možnosti.) Odebere anglické přivlastnive a tečky z zkratek.
common_grams CommonGramTokenFilter Vytvořte bigramy pro často se vyskytující termíny při indexování. Indexovány jsou i jednotlivé termíny a bigramy jsou přeocené.

Možnosti

commonWords (typ: pole řetězců) – sada běžných slov. Výchozí hodnota je prázdný seznam. Povinná hodnota.

ignoreCase (typ: bool) – Pokud je true, při porovnávání se malá a velká písmena nerozlišovat. Výchozí hodnotou je hodnota false.

queryMode (type: bool) – Vygeneruje bigramy a pak odebere běžná slova a jednotlivé termíny následované běžným slovem. Výchozí hodnotou je hodnota false.
dictionary_decompounder DictionaryDecompou dictionaryTokenFilter Rozložit složená slova nalezená v mnoha německých jazycích

Možnosti

wordList (type: string array) – seznam slov, se která se musí shodovat. Výchozí hodnota je prázdný seznam. Povinná hodnota.

minWordSize (type: int) – zpracovávají se pouze slova delší než tato. Výchozí hodnota je 5.

minSubwordSize (type: int) – výstupem jsou pouze podsloví, která jsou delší než tato hodnota. Výchozí hodnota je 2.

maxSubwordSize (type: int) – výstupem jsou pouze podsloví kratší než tato. Výchozí hodnota je 15.

onlyLongestMatch (typ: bool) – Do výstupu přidejte pouze nejdelší odpovídající podsloví. Výchozí hodnotou je hodnota false.
edgeNGram_v2 EdgeNGramTokenFilterV2 Generuje n gramů dané velikosti zepředu nebo ze zadní části vstupního tokenu.

Možnosti

minGram (typ: int) – výchozí hodnota: 1, maximum: 300.

maxGram (typ: int) – výchozí hodnota: 2, maximum 300. Musí být větší než minGram.

side (type: string) – Určuje stranu vstupu, ze které se má generovat n-gram. Povolené hodnoty: "front", "back"
elision (elsion) ElisionTokenFilter Odebere elizi. Například "l'avion" (rovina) se převede na "avion" (rovina).

Možnosti

articles (typ: pole řetězců) – sada článků, které se mají odebrat. Výchozí hodnota je prázdný seznam. Pokud žádný seznam článků není nastavený, ve výchozím nastavení se všechny články ve francouzštině odebraly.
german_normalization (typ se použije jenom v případě, že jsou dostupné možnosti.) Normalizuje německé znaky podle heuristiky algoritmu snowballu German2.
hindi_normalization (typ se použije jenom v případě, že jsou dostupné možnosti.) Normalizuje text v hindštině, aby se odstranily některé rozdíly v pravopisných variacích.
indic_normalization IndicNormalizationTokenFilter Normalizuje reprezentaci textu unicode v induských jazycích.
Udržet KeepTokenFilter Filtr tokenů, který uchovává pouze tokeny s textem obsaženým v zadaném seznamu slov.

Možnosti

keepWords (typ: pole řetězců) – seznam slov, která se mají zachovat. Výchozí hodnota je prázdný seznam. Povinná hodnota.

keepWordsCase (typ: bool) – Pokud je true, na prvním místě jsou všechna slova malými písmeny. Výchozí hodnotou je hodnota false.
keyword_marker KeywordMarkerTokenFilter Označuje termíny jako klíčová slova.

Možnosti

keywords (type: string array) – seznam slov, která se mají označit jako klíčová slova. Výchozí hodnota je prázdný seznam. Povinná hodnota.

ignoreCase (typ: bool) – pokud je true, nejprve malými písmeny všechna slova. Výchozí hodnotou je hodnota false.
keyword_repeat (typ se použije jenom v případě, že jsou dostupné možnosti.) Vysílá každý příchozí token dvakrát jednou jako klíčové slovo a jednou jako bez klíčového slova.
kstem (typ se použije jenom v případě, že jsou dostupné možnosti.) Vysoce výkonný filtr Kstem pro angličtinu.
length LengthTokenFilter Odebere slova, která jsou příliš dlouhá nebo příliš krátká.

Možnosti

min (typ: int) – minimální číslo. Výchozí hodnota: 0, maximum: 300.

max (type: int) – maximální počet. Výchozí hodnota: 300, maximum: 300.
limit Microsoft.Azure.Search.LimitTokenFilter Omezuje počet tokenů při indexování.

Možnosti

maxTokenCount (typ: int) – maximální počet tokenů, které se vytvoří. Výchozí hodnota je 1.

consumeAllTokens (typ: bool) – určuje, jestli se musí využívat všechny tokeny ze vstupu, i když je dosaženo hodnoty maxTokenCount. Výchozí hodnotou je hodnota false.
Malá písmena (typ se použije jenom v případě, že jsou dostupné možnosti.) Normalizuje text tokenu na malá písmena.
nGram_v2 NGramTokenFilterV2 Vygeneruje n gramů dané velikosti(ů).

Možnosti

minGram (typ: int) – výchozí hodnota: 1, maximum: 300.

maxGram (typ: int) – výchozí: 2, maximum 300. Musí být větší než minGram.
pattern_capture PatternCaptureTokenFilter Používá regulární výrazy jazyka Java k vygenerování více tokenů, jeden pro každou skupinu zachycení v jednom nebo více vzorcích.

Možnosti

vzory (typ: pole řetězců) – seznam vzorů, které se mají pro každý token porovnat. Povinná hodnota.

preserveOriginal (typ: bool) – nastavte na hodnotu true, chcete-li vrátit původní token, i když jedna ze vzorů odpovídá, výchozí hodnota: true
pattern_replace PatternReplaceTokenFilter Filtr tokenu, který u každého tokenu v datovém proudu používá určitý vzorek, který nahradí odpovídající výskyty zadaným náhradním řetězcem.

Možnosti

Pattern (typ: String) – povinný.

náhrada (typ: String) – povinné.
persian_normalization (typ platí pouze v případě, že jsou k dispozici možnosti) Aplikuje normalizaci pro perské.
fonetické PhoneticTokenFilter Vytvoří tokeny pro fonetické shody.

Možnosti

Encoder (typ: String) – fonetický kodér, který se má použít. Mezi povolené hodnoty patří: "metaphone", "doubleMetaphone", "SOUNDEX", "refinedSoundex", "caverphone1", "caverphone2", "Cologne", "nysiis", "koelnerPhonetik", "haasePhonetik", "beiderMorse". Výchozí: "metaphone". Výchozí hodnota je metaphone.

Další informace najdete v tématu kodér .

Replace (Type: bool)-true, pokud mají kódované tokeny nahradit původní tokeny, false, pokud by měly být přidány jako synonyma. Výchozí hodnota je true.
porter_stem (typ platí pouze v případě, že jsou k dispozici možnosti) Transformuje datový proud tokenu na základě Porter algoritmu.
zpět (typ platí pouze v případě, že jsou k dispozici možnosti) Obrátí řetězec tokenu.
scandinavian_normalization (typ platí pouze v případě, že jsou k dispozici možnosti) Normalizuje použití přiměnitelné Scandinavian znaků.
scandinavian_folding (typ platí pouze v případě, že jsou k dispozici možnosti) Skládání Scandinavian znaků åÅäæÄÆ->a a öÖøØ->o. Také se odkládá na použití dvojitých samohláskami AA, AE, Ao, OE a ó, a proto zbývá jenom první z nich.
střešní tašky ShingleTokenFilter Vytvoří kombinace tokenů jako jeden token.

Možnosti

maxShingleSize (typ: int) – výchozí hodnota je 2.

minShingleSize (typ: int) – výchozí hodnota je 2.

outputUnigrams (typ: bool) – Pokud má hodnotu true, výstupní datový proud obsahuje vstupní tokeny (unigrams) a také Shingles. Výchozí hodnota je true.

outputUnigramsIfNoShingles (typ: bool) – je-li nastavena hodnota true, přepište chování outputUnigrams = = false v případě, že nejsou k dispozici žádné Shingles. Výchozí hodnotou je hodnota false.

tokenSeparator (typ: řetězec) – řetězec, který má být použit při spojování sousedících tokenů, aby bylo možné vytvořit střešní tašky. Výchozí hodnota je "".

filterToken (typ: řetězec) – řetězec, který má být vložen pro každou pozici, na které není žádný token. Výchozí hodnota je "_".
snowball SnowballTokenFilter Filtr tokenu Snowball

Možnosti

jazyk (typ: řetězec) – povolené hodnoty jsou: "arménština", "baskičtina", "Katalánština", "Dánština", "Holandština", "Angličtina", "finština", "francouzština", "Němčina", "german2", "Maďarština", "Italština", "KP", "Lovins", "Norština", "Porter", "portugalština", "Rumunština", "ruština", "španělština", "Čeština"
sorani_normalization SoraniNormalizationTokenFilter Normalizuje reprezentace textu sorani v kódování Unicode.

Možnosti

Žádné
stemmer StemmerTokenFilter Filtr lemmatizátor konkrétního jazyka.

Možnosti

jazyk (typ: řetězec) – povolené hodnoty zahrnují:
- načtení
- iniciála
- baskičtina
- brazilský
– "Bulharština"
- Katalánština
- českém
- Dánsk
- nizozemštin
- "dutchKp"
- verzi
- "lightEnglish"
- "minimalEnglish"
- "possessiveEnglish"
- "porter2"
- "lovins"
- finštin
- "lightFinnish"
- Francouzská
- "lightFrench"
- "minimalFrench"
– "galicijština"
- "minimalGalician"
- německé
- "german2"
- "lightGerman"
- "minimalGerman"
- "řečtina"
– "hindština"
- "maďarština"
- "light Číhař"
- Indonéština
- "jejich"
- "italian"
- "lightItaiana"
- "užimá"
- "lotyština"
- "norština"
- "lightNor zdroj"
- "minimalNorian"
- "lightNynorsk"
- "minimalNynorsk"
- "portugalština"
- "lightPortuguese"
- "minimalPortuguese"
- "portugueseRslp"
- Rumunština
- "ruština"
- "lightRussian"
- "spanish"
- "lightSpanish"
- "švédština"
- "lightSwedish"
- "turečtina"
stemmer_override StemmerOverrideTokenFilter Všechny termíny dictionary-Stemmed jsou označené jako klíčová slova, což brání tomu, aby se zřetězoval řetězec. Musí se umístit před všechny filtry stonku.

Možnosti

rules (typ: pole řetězců) – pravidla stonku v následujícím formátu: "word => stem", například "ran => run". Výchozí hodnota je prázdný seznam. Povinná hodnota.
stopwords StopwordsTokenFilter Odebere z tokenového streamu slova stop. Ve výchozím nastavení filtr používá předdefinovaný seznam stop slov pro angličtinu.

Možnosti

stopwords (type: string array) – seznam stopwords. Pokud je zadaný parametr stopwordsList, nelze ho zadat.

stopwordsList (type: string) – předdefinovaný seznam stopwords. Pokud je zadaná slova stopwords, nelze ji zadat. Mezi povolené hodnoty patří:"arabština", "armén", "basque", "brazilský", "bulharština", "kaskádština", "čeština", "dánština", "nizozemština", "english", "finština", "francouzština", "galižština", "němčina", "řečtina", "hindština", "maďarština", "indonéština", "španělština", "italština", "norština", "portugalština", "rumunština", "ruština", "španělština", "švédština", "thaj", "turečtina", výchozí: "english". Pokud je zadaná slova stopwords, nelze ji zadat.

ignoreCase (typ: bool) – Pokud je true, všechna slova se nejdříve zadí malými písmeny. Výchozí hodnotou je hodnota false.

removeTrailing (typ: bool) – Pokud je true, ignorujte poslední hledaný termín, pokud se jedná o slovo stop. Výchozí hodnota je true.
Synonymum SynonymTokenFilter Odpovídá synonymům jednoho nebo více slov v datovém proudu tokenu.

Možnosti

synonyma (typ: pole řetězců) – povinné. Seznam synonym v jednom z následujících dvou formátů:

-úžasné, působivé,> = úžasné – všechny výrazy na levé straně symbolu => jsou nahrazeny všemi výrazy na pravé straně.

-úžasná, mimáka, mimáčka, úžasné – čárkami oddělený seznam ekvivalentních slov. Pokud chcete změnit způsob interpretace tohoto seznamu, nastavte možnost rozbalení.

ignoreCase (typ: bool) – při porovnávání se rozlišují velká a malá písmena. Výchozí hodnotou je hodnota false.

expand (typ: bool) – Pokud je true, všechna slova v seznamu synonym (pokud => notace se nepoužívali) se navzájem mapují.
Následující seznam: úžasné, dechem, dechu, úžasné je ekvivalentem: úžasné, úžasné, působivé, úžasné => úžasné, úžasné, úžasné

– Pokud je hodnota false, následující seznam: úžasné, jsou ekvivalentní: neuvěřitelně, působivé, úžasné, úžasné => úžasné.
Trim (typ se použije jenom v případě, že jsou dostupné možnosti.) Oříznutí počátečního a koncového prázdného znaku z tokenů.
Zkrátit TruncateTokenFilter Zkrátí termíny na určitou délku.

Možnosti

length (type: int) – výchozí hodnota: 300, maximum: 300. Povinná hodnota.
Jedinečný UniqueTokenFilter Odfiltruje tokeny se stejným textem jako předchozí token.

Možnosti

onlyOnSamePosition (typ: bool) – Pokud je nastavená, odeberte duplicity jenom na stejné pozici. Výchozí hodnota je true.
Velká (typ se použije jenom v případě, že jsou dostupné možnosti.) Normalizuje text tokenu na velká písmena.
word_delimiter WordDelimiterTokenFilter Rozdělí slova na podslovní slova a provede volitelné transformace u podslovných skupin.

Možnosti

generateWordParts (typ: bool) – Způsobí, že se vygenerují části slov, například "AzureSearch" se změní na "Azure" "Search". Výchozí hodnota je true.

generateNumberParts (typ: bool) – Způsobí, že se vygenerují podskupiná slova čísel. Výchozí hodnota je true.

catenateWords (typ: bool) – Způsobí, že se zkrátí maximální počet spuštění částí slov, například "Azure-Search" se změní na "AzureSearch". Výchozí hodnotou je hodnota false.

catenateNumbers (typ: bool) – Způsobí, že se zkrátí maximální počet spuštění, například "1–2" se změní na "12". Výchozí hodnotou je hodnota false.

catenateAll (typ: bool) – Způsobí, že se všechny části podsloví zřetězují, například "Azure-Search-1" se změní na "AzureSearch1". Výchozí hodnotou je hodnota false.

splitOnCaseChange (typ: bool) – Pokud je true, rozdělí slova při změně případu, například "AzureSearch" se změní na "Azure" "Search". Výchozí hodnota je true.

preserveOriginal – Způsobí, že původní slova budou zachována a přidána do seznamu podslovních slov. Výchozí hodnotou je hodnota false.

splitOnNumerics (typ: bool) – Pokud je true, rozdělí se podle čísel, například "Azure1Search" se změní na "Azure" "1" "Search". Výchozí hodnota je true.

stemEnglishPossessive (typ: bool) – Způsobí odebrání koncových "ů" pro každé podsloví. Výchozí hodnota je true.

protectedWords (typ: pole řetězců) – Tokeny, které se chrání před oddělovači. Výchozí hodnota je prázdný seznam.

1 Typy filtru tokenů mají vždy předponu v kódu #Microsoft.Azure.Search, takže "ArabicNormalizationTokenFilter" by se ve skutečnosti zadal jako "#Microsoft.Azure.Search.ArabicNormalizationTokenFilter". Předponu jsme odebrali, aby se snížila šířka tabulky, nezapomeňte ji ale zahrnout do kódu.

Viz také