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.