Přidání vlastních analyzátorů do řetězcových polí v indexu Azure AI Search

Vlastní analyzátor je uživatelsky definovaná kombinace jednoho tokenizátoru, jednoho nebo více filtrů tokenů a jednoho nebo více filtrů znaků. Vlastní analyzátor se zadává v indexu vyhledávání a potom odkazuje podle názvu v definicích polí, které vyžadují vlastní analýzu. Vlastní analyzátor se vyvolá na základě jednotlivých polí. Atributy v poli určují, jestli se používá pro indexování, dotazy nebo obojí.

Ve vlastním analyzátoru filtry znaků připraví vstupní text před zpracováním tokenizátorem (například odebráním značek). Dále tokenizátor rozdělí text na tokeny. Nakonec filtry tokenů upraví tokeny generované tokenizátorem. Koncepty a příklady najdete v tématu Analyzátory ve službě Azure AI Search.

Proč používat vlastní analyzátor?

Vlastní analyzátor vám dává kontrolu nad procesem převodu textu na indexovatelné a prohledávatelné tokeny tím, že vám umožní zvolit, které typy analýzy nebo filtrování se mají vyvolat, a pořadí, ve kterém k nim dochází.

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

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

  • Použití filtrů znaků k odebrání kódu HTML před tokenizovanými textovými vstupy nebo nahrazením určitých znaků nebo symbolů.

  • Telefon tic search. Přidejte fonetický filtr, který povolí vyhledávání na základě toho, jak slovo zní, ne jak je napsané.

  • Zakažte lexikální analýzu. Pomocí analyzátoru klíčových slov můžete vytvářet prohledávatelná pole, která nejsou analyzována.

  • Hledání rychlých předpon nebo přípon Přidejte filtr tokenu N-gram Edge k indexu předpon slov, abyste umožnili rychlé porovnávání předpon. Zkombinujte ho s filtrem zpětného tokenu a proveďte odpovídající příponu.

  • Vlastní tokenizace Například pomocí tokenizátoru prázdných znaků rozdělte věty do tokenů pomocí prázdných znaků jako oddělovače.

  • Skládací ASCII. Přidejte standardní skládací filtr ASCII pro normalizaci diakritických kritiek, jako je ö nebo ê ve hledaných termínech.

Poznámka:

Vlastní analyzátory se na webu Azure Portal nezpřístupní. 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 analyzers části indexu v době návrhu a pak na něj odkazujte na prohledávatelná Edm.String pole pomocí analyzer vlastnosti nebo páru indexAnalyzersearchAnalyzer .

Definice analyzátoru zahrnuje název, typ, jeden nebo více filtrů znaků, maximálně jeden tokenizátor a jeden nebo více filtrů tokenů pro zpracování po tokenizaci. Před tokenizací se použijí filtry znaků. Filtry tokenů a filtry znaků se použijí zleva doprava.

  • Názvy ve vlastním analyzátoru musí být jedinečné a nemůžou být stejné jako žádné integrované analyzátory, tokenizátory, filtry tokenů nebo filtry znaků. Musí obsahovat pouze písmena, číslice, mezery, pomlčky nebo podtržítka, může začínat a končit alfanumerickými znaky a je omezena 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 tokenizací v uvedeném pořadí. Některé filtry znaků mají možnosti, které je možné nastavit v oddílu charFilters . Filtry znaků jsou volitelné.

  • tokenizer je přesně jeden tokenizátor. Je vyžadována hodnota. Pokud potřebujete více tokenizátorů, můžete ve schématu indexu vytvořit několik vlastních analyzátorů a přiřadit je podle polí.

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

Analyzátory nesmí vytvářet tokeny delší než 300 znaků nebo indexování selže. Chcete-li oříznout dlouhý token nebo je vyloučit, použijte TruncateTokenFilter a LengthTokenFilter v uvedeném pořadí. Referenční informace 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 definici indexu můžete tento oddíl umístit kamkoli do textu žádosti o vytvoření indexu, ale obvykle se dostane na konec:

{
  "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 a filtry tokenů se přidají do indexu jenom v případě, že nastavujete vlastní možnosti. Pokud chcete použít existující filtr nebo tokenizátor tak, jak je, 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ů ve službě Azure AI Search.

Testování vlastních analyzátorů

Pomocí analyzátoru testů (REST) můžete zjistit, jak analyzátor rozdělí daný text na tokeny.

Požádat

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

Odpověď respondenta

  {
    "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, tokenizátor, filtr tokenů nebo filtr znaků, nedá se upravit. Nové je možné přidat do existujícího indexu pouze v případě, že je příznak v požadavku na aktualizaci indexu allowIndexDowntime nastaven na true:

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

Tato operace přenese index nejméně několik sekund do offline režimu, což způsobí selhání indexování a požadavků na dotazy. Výkon a dostupnost zápisu indexu může být po dobu několika minut po aktualizaci indexu nebo delších pro velmi velké indexy poškozena, ale tyto účinky jsou dočasné a nakonec se samy vyřeší.

Integrované analyzátory

Pokud chcete použít integrovaný analyzátor s vlastními možnostmi, vytvoření vlastního analyzátoru je mechanismus, pomocí kterého tyto možnosti určíte. Pokud chcete použít integrovaný analyzátor tak, jak je, stačí na něj jednoduše odkazovat podle názvu v definici pole.

analyzer_name analyzer_type 1 Popis a možnosti
Klíčové slovo (typ platí jenom v případech, kdy jsou k dispozici možnosti) Považuje celý obsah pole za jediný token. To je užitečné pro data, jako jsou PSČ, ID a některé názvy produktů.
Vzor PatternAnalyzer Pružně odděluje text do termínů pomocí vzoru regulárního výrazu.

Možnosti

malá písmena (typ: bool) – Určuje, jestli jsou termíny nižší. Výchozí hodnota je true.

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á neslovým znakům.

příznaky (typ: řetězec) – 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, systém UNIX_LINES

stopwords (type: string array) – seznam stopwords. Výchozí hodnota je prázdný seznam.
Jednoduché (typ platí jenom v případech, kdy jsou k dispozici možnosti) Rozdělí text bez písmen a převede je na malá písmena.
Standardní
(Označuje se také jako standard.lucene)
StandardAnalyzer Standardní analyzátor Lucene složený ze standardního tokenizátoru, filtru malými písmeny a filtru zastavení.

Možnosti

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

stopwords (type: string array) – seznam stopwords. Výchozí hodnota je prázdný seznam.
standardasciifolding.lucene (typ platí jenom v případech, kdy jsou k dispozici možnosti) Standardní analyzátor s skládacím filtrem Ascii.
Stop StopAnalyzer Rozdělí text na jiná písmena, použije filtry tokenů s malými písmeny a stopword.

Možnosti

stopwords (type: string array) – seznam stopwords. Výchozí hodnota je předdefinovaný seznam pro angličtinu.
Mezery (typ platí jenom v případech, kdy jsou k dispozici možnosti) Analyzátor, který používá tokenizátor prázdných znaků. Tokeny delší než 255 znaků jsou rozdělené.

1 Typy analyzátoru jsou vždy předpony v kódu tak #Microsoft.Azure.Search , aby PatternAnalyzer byly skutečně zadány jako #Microsoft.Azure.Search.PatternAnalyzer. Odebrali jsme předponu pro stručnost, ale předpona je v kódu povinná.

Analyzer_type je k dispozici pouze pro analyzátory, které je možné přizpůsobit. Pokud neexistují žádné možnosti, stejně jako u analyzátoru klíčových slov, neexistuje žádný přidružený typ #Microsoft.Azure.Search.

Filtry znaků

Filtry znaků přidávají zpracování před tím, než řetězec dosáhne tokenizátoru.

Azure AI Search 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í Lucene API.

char_filter_name char_filter_type 1 Popis a možnosti
html_strip (typ platí jenom v případech, kdy jsou k dispozici možnosti) Filtr znaků, který se pokusí odstranit konstruktory HTML.
Mapování MappingCharFilter Filtr znaků, který používá mapování definovaná pomocí možnosti mapování. Porovnávání je greedy (nejdelší porovnávání vzorů v daném bodě vyhrává). 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ý:
pattern_replace PatternReplaceCharFilter Filtr znaků, který nahradí znaky ve vstupním řetězci. Používá regulární výraz k identifikaci sekvencí znaků k zachování a nahrazení vzoru pro identifikaci znaků, které se mají nahradit. Například vstupní text = aa bb aa bb, vzor=(aa)\\\s+(bb) nahrazení=$1#$2, výsledek = aa#bb aa#bb.

Možnosti

pattern (typ: řetězec) – povinné.

nahrazení (typ: řetězec) – povinné.

1 Typy filtru znaků jsou vždy předpony v kódu tak #Microsoft.Azure.Search , aby MappingCharFilter byly skutečně zadány jako #Microsoft.Azure.Search.MappingCharFilter. Odebrali jsme předponu, abychom zmenšili šířku tabulky, ale nezapomeňte ji zahrnout do kódu. Všimněte si, že char_filter_type je k dispozici pouze pro filtry, které je možné přizpůsobit. Pokud neexistují žádné možnosti, stejně jako u html_strip, neexistuje žádný přidružený typ #Microsoft.Azure.Search.

Tokenizátory

Tokenizátor rozděluje souvislý text do posloupnosti tokenů, například rozdělení věty na slova nebo slovo do kořenových formulářů.

Azure AI Search podporuje tokenizátory v následujícím seznamu. Další informace o každé z nich najdete v referenčních informacích k rozhraní Lucene API.

tokenizer_name tokenizer_type 1 Popis a možnosti
Klasické ClassicTokenizer Tokenizátor založený na gramatikě, který je vhodný pro zpracování většiny dokumentů evropského jazyka.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu. Výchozí hodnota: 255, maximum: 300. Tokeny delší než maximální délka jsou rozdělené.
edgeNGram EdgeNGramTokenizer Tokenizuje vstup z okraje na n-gramy dané velikosti.

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é mají být v tokenech zachovány. Povolené hodnoty:
letter, digit, whitespace, punctuation, symbol. Výchozí hodnota prázdného 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í hodnota: 256, maximum: 300. Tokeny delší než maximální délka jsou rozdělené.
Písmeno (typ platí jenom v případech, kdy jsou k dispozici možnosti) Rozdělí text bez písmen. Tokeny delší než 255 znaků jsou rozdělené.
Malá písmena (typ platí jenom v případech, kdy jsou k dispozici možnosti) Rozdělí text bez písmen a převede je na malá písmena. Tokeny delší než 255 znaků jsou rozdělené.
microsoft_language_tokenizer MicrosoftLanguageTokenizer Rozdělí text pomocí pravidel specifických pro jazyk.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu, výchozí hodnota: 255, maximum: 300. Tokeny 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 potom se každý z těchto tokenů rozdělí na základě sady maxTokenLength.

isSearchTokenizer (typ: bool) – Pokud se používá jako tokenizátor vyhledávání, nastavte hodnotu false, pokud se používá jako tokenizátor indexování.

language (type: string) - Jazyk, který se má použít, výchozí english. Mezi povolené hodnoty patří:
bangla, bulgarian, catalan, , chineseTraditionalchineseSimplifiedcroatianczechdanishdutchenglishfrenchgermangreekgujaratihindiicelandicindonesianitalianjapanesekannadakoreanmalaymalayalammarathinorwegianBokmaalpolishportugueseportugueseBrazilianpunjabiromanianrussianserbianCyrillicserbianLatinslovenianspanishswedishtamilteluguthaiukrainianurduvietnamese
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Rozdělí text pomocí pravidel specifických pro jazyk a zmenšuje slova na jejich základní formuláře. Tento tokenizátor provádí lemmatizaci.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu, výchozí hodnota: 255, maximum: 300. Tokeny 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 potom se každý z těchto tokenů rozdělí na základě sady maxTokenLength.

isSearchTokenizer (typ: bool) – Pokud se používá jako tokenizátor vyhledávání, nastavte hodnotu false, pokud se používá jako tokenizátor indexování.

language (type: string) - Jazyk, který se má použít, výchozí english. Mezi povolené hodnoty patří:
arabic, bangla, bulgarian, catalan, croatian, czechdanishdutchenglishestonianfinnishfrenchgermangreekgujaratihebrewhindihungarianicelandicindonesianitaliankannadalatvianlithuanianmalaymalayalammarathinorwegianBokmaalpolishportugueseportugueseBrazilianpunjabiromanianrussianserbianCyrillicserbianLatinslovakslovenianspanishswedishtamilteluguturkishukrainianurdu
nGram NGramTokenizer Tokenizuje vstup na n-gramy dané velikosti.

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é mají být v tokenech zachovány. Povolené hodnoty: letter, digit, whitespace, punctuation, symbol. Výchozí hodnota prázdného pole – zachová všechny znaky.
path_hierarchy_v2 PathHierarchyTokenizerV2 Tokenizátor pro hierarchie podobné cestě. Možnosti

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

replace (type: string) – Pokud je nastavena, 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 jsou ignorovány.

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 mají přeskočit. Výchozí hodnota je 0.
Vzor PatternTokenizer Tento tokenizátor 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á neslovým znakům.

příznaky (typ: řetězec) – 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, systém UNIX_LINES

group (type: int) – která skupina se má extrahovat do tokenů. Výchozí hodnota je -1 (rozdělení).
standard_v2 StandardTokenizerV2 Zalomí text podle pravidel segmentace textu unicode.

Možnosti

maxTokenLength (typ: int) – maximální délka tokenu. Výchozí hodnota: 255, maximum: 300. Tokeny 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 delší než maximální délka jsou rozdělené.
Mezery (typ platí jenom v případech, kdy jsou k dispozici možnosti) Rozdělí text na prázdné znaky. Tokeny delší než 255 znaků jsou rozdělené.

1 Typy tokenizátoru jsou vždy předpony v kódu, #Microsoft.Azure.Search který ClassicTokenizer by byl skutečně zadán jako #Microsoft.Azure.Search.ClassicTokenizer. Odebrali jsme předponu, abychom zmenšili šířku tabulky, ale nezapomeňte ji zahrnout do kódu. Všimněte si, že tokenizer_type je k dispozici pouze pro tokenizátory, které je možné přizpůsobit. Pokud neexistují žádné možnosti, stejně jako u tokenizátoru dopisů, není k dispozici žádný přidružený typ #Microsoft.Azure.Search.

Filtry tokenů

Filtr tokenů slouží k vyfiltrování nebo úpravě tokenů vygenerovaných tokenizátorem. Můžete například zadat filtr malými písmeny, který převede všechny znaky na malá písmena. Ve vlastním analyzátoru můžete mít více filtrů tokenů. Filtry tokenů se spouštějí v pořadí, v jakém jsou uvedené.

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

token_filter_name token_filter_type 1 Popis a možnosti
arabic_normalization (typ platí jenom v případech, kdy jsou k dispozici možnosti) Filtr tokenů, který použije arabský normalizátor k normalizaci orthografie.
Apostrof (typ platí jenom v případech, kdy jsou k dispozici možnosti) Odstraní všechny znaky za apostrofem (včetně samotného apostrofu).
asciifolding AsciiFoldingTokenFilter Převede abecední, číselné a symbolické znaky Unicode, které nejsou v prvních 127 znacích ASCII ( Basic Latin blok Unicode) na jejich ekvivalenty ASCII, pokud existuje.

Možnosti

preserveOriginal (typ: bool) - Pokud je true, původní token se zachová. Výchozí hodnotou je hodnota false.
cjk_bigram CjkBigramTokenFilter Tvoří bigramy výrazů CJK, které jsou generovány ze StandardTokenizer.

Možnosti

ignoreScripts (type: string array) – Skripty, které se mají ignorovat. Povolené hodnoty zahrnují: han, hiragana, katakana, hangul. Výchozí hodnota je prázdný seznam.

outputUnigrams (typ: bool) – Nastavte hodnotu true, pokud chcete vždy vypsat unigramy i bigramy. Výchozí hodnotou je hodnota false.
cjk_width (typ platí jenom v případech, kdy jsou k dispozici možnosti) Normalizuje rozdíly šířky CJK. Přeloží varianty ASCII na ekvivalentní základní varianty latinky a katakany s poloviční šířkou do ekvivalentní kana.
Klasické (typ platí jenom v případech, kdy jsou k dispozici možnosti) Odebere anglické přivlastnické a tečky ze zkratek.
common_grams CommonGramTokenFilter Při indexování vytvořte bigramy pro často se vyskytující termíny. Jednotlivé termíny jsou stále indexované, s překryvnými bigramy.

Možnosti

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

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

queryMode (typ: 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 DictionaryDecompounderTokenFilter Rozloží složená slova nalezená v mnoha německých jazycích.

Možnosti

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

minWordSize (typ: int) – Budou zpracována pouze slova delší než tato hodnota. Výchozí volba je 5.

minSubwordSize (typ: int) – Zobrazí se pouze podsloví delší, než bude výstup. Výchozí volba je 2.

maxSubwordSize (typ: int) – Zobrazí se pouze subwords kratší, než je tato hodnota. Výchozí hodnota je 15.

onlyLongestMatch (type: bool) – Přidá do výstupu pouze nejdelší odpovídající podsloví. Výchozí hodnotou je hodnota false.
edgeNGram_v2 EdgeNGramTokenFilterV2 Vygeneruje n-gramy dané velikosti od začátku z přední nebo zadní části vstupního tokenu.

Možnosti

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

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

side (type: string) – Určuje, ze které strany vstupu má být vygenerován n-gram. Povolené hodnoty: front, back
elision ElisionTokenFilter Odebere elisions. Například l'avion (rovina) se převede na avion (rovinu).

Možnosti

articles (type: string array) – sada článků, které chcete odebrat. Výchozí hodnota je prázdný seznam. Pokud není nastavený žádný seznam článků, odeberou se ve výchozím nastavení všechny francouzské články.
german_normalization (typ platí jenom v případech, kdy jsou k dispozici možnosti) Normalizuje německé znaky podle heuristiky německého snowball algoritmu .
hindi_normalization (typ platí jenom v případech, kdy jsou k dispozici možnosti) Normalizuje text v hindštině a odebere některé rozdíly v pravopisných variantách.
indic_normalization IndicNormalizationTokenFilter Normalizuje reprezentaci textu v indickém jazyce unicode.
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á chcete zachovat. Výchozí hodnota je prázdný seznam. Povinný:

keepWordsCase (typ: bool) - Pokud je true, malá písmena všechna slova jako první. Výchozí hodnotou je hodnota false.
keyword_marker KeywordMarkerTokenFilter Označí 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ý:

ignoreCase (typ: bool) - Pokud je true, malá písmena všechna slova jako první. Výchozí hodnotou je hodnota false.
keyword_repeat (typ platí jenom v případech, kdy jsou k dispozici možnosti) Vygeneruje každý příchozí token dvakrát jako klíčové slovo a jednou jako jiné než klíčové slovo.
kstem (typ platí jenom v případech, kdy jsou k dispozici možnosti) Vysoce výkonný kstem filtr 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 (typ: 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 mají vytvořit. Výchozí hodnota je 1.

consumeAllTokens (typ: bool) – určuje, jestli musí být spotřebovány všechny tokeny ze vstupu, i když je dosaženo maxTokenCount. Výchozí hodnotou je hodnota false.
Malá písmena (typ platí jenom v případech, kdy jsou k dispozici možnosti) Normalizuje text tokenu na malá písmena.
nGram_v2 NGramTokenFilterV2 Vygeneruje n-gramy dané velikosti.

Možnosti

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

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

Možnosti

patterns (type: string array) – seznam vzorů, které se mají shodovat s každým tokenem. Povinný:

preserveOriginal (typ: bool) – Nastavte na true, aby se vrátil původní token, i když některý ze vzorů odpovídá, výchozí hodnota: true
pattern_replace PatternReplaceTokenFilter Filtr tokenů, který aplikuje vzor na každý token ve streamu a nahradí výskyty zadaným náhradním řetězcem.

Možnosti

pattern (typ: řetězec) – povinné.

nahrazení (typ: řetězec) – povinné.
persian_normalization (typ platí jenom v případech, kdy jsou k dispozici možnosti) Použije normalizaci pro Perštinu.
Fonetické Telefon ticTokenFilter Vytváření tokenů pro fonetické shody

Možnosti

encoder (typ: řetězec) – Telefon tic encoder to use. Povolené hodnoty zahrnují: metaphone, doubleMetaphone, soundex, refinedSoundex, caverphone1caverphone2, cologne, nysiis, koelnerPhonetik, haasePhonetik. beiderMorse Výchozí hodnota: metaphone. Výchozí hodnota je metafon.

Další informace najdete v kodéru .

replace (type: bool) – True, pokud kódované tokeny by měly nahradit původní tokeny, false, pokud by se měly přidat jako synonyma. Výchozí hodnota je true.
porter_stem (typ platí jenom v případech, kdy jsou k dispozici možnosti) Transformuje datový proud tokenu podle algoritmu vytváření porteru.
reverse (typ platí jenom v případech, kdy jsou k dispozici možnosti) Vrátí řetězec tokenu.
scandinavian_normalization (typ platí jenom v případech, kdy jsou k dispozici možnosti) Normalizuje použití zaměnitelných severských znaků.
scandinavian_folding (typ platí jenom v případech, kdy jsou k dispozici možnosti) Přeloží severské postavy åÅäæÄÆdo a a öÖøØdo o. Také diskriminuje použití dvojitých samohlásek aa, ae, aooe a oo, a , opouští pouze první.
Šindel 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 je true, výstupní datový proud obsahuje vstupní tokeny (unigramy) i shingles. Výchozí hodnota je true.

outputUnigramsIfNoShingles (typ: bool) – Pokud je true, přepište chování outputUnigrams==false pro tyto časy, když nejsou k dispozici žádné shingles. Výchozí hodnotou je hodnota false.

tokenSeparator (typ: řetězec) – řetězec, který se použije při připojování sousedních tokenů k vytvoření shingle. Výchozí hodnota je jedna prázdná mezera .

filterToken (type: string) – řetězec, který se má vložit pro každou pozici, pro kterou neexistuje token. Výchozí hodnota je _.
Sněhulka SnowballTokenFilter Snowball Token Filter.

Možnosti

jazyk (typ: řetězec) - Povolené hodnoty: , , , , , dutchenglish, finnishgerman2hungariankplovinsfrenchnorwegianitaliangerman, porter, , spanishrussianswedishromanianportuguesedanishcatalanbasquearmenianturkish
sorani_normalization SoraniNormalizationTokenFilter Normalizuje reprezentaci Sorani textu v kódování Unicode.

Možnosti

Žádné
Stemmer StemmerTokenFilter Filtr stemmingu specifický pro jazyk.

Možnosti

language (type: string) – Povolené hodnoty zahrnují:
- arabic
- armenian
- basque
- brazilian
- bulgarian
- catalan
- czech
- danish
- dutch
- dutchKp
- english
- lightEnglish
- minimalEnglish
- possessiveEnglish
- porter2
- lovins
- finnish
- lightFinnish
- french
- lightFrench
- minimalFrench
- galician
- minimalGalician
- german
- german2
- lightGerman
- minimalGerman
- greek
- hindi
- hungarian
- lightHungarian
- indonesian
- irish
- italian
- lightItalian
- sorani
- latvian
- norwegian
- lightNorwegian
- minimalNorwegian
- lightNynorsk
- minimalNynorsk
- portuguese
- lightPortuguese
- minimalPortuguese
- portugueseRslp
- romanian
- russian
- lightRussian
- spanish
- lightSpanish
- swedish
- lightSwedish
- turkish
stemmer_override StemmerOverrideTokenFilter Všechny termíny ve slovníku jsou označeny jako klíčová slova, což brání vysunutí řetězce. Musí být umístěny před všemi filtry pro vytváření.

Možnosti

rules (type: string array) - Stemming rules in the following format word => stem example ran => run. Výchozí hodnota je prázdný seznam. Povinný:
Stopwords StopwordsTokenFilter Odebere slova ze streamu tokenu. Ve výchozím nastavení filtr používá předdefinovaný seznam stop slov pro angličtinu.

Možnosti

stopwords (type: string array) – seznam stopwords. Nelze zadat, pokud je zadán seznam stopwordsList.

stopwordsList (typ: řetězec) – předdefinovaný seznam stopwords. Nelze zadat, pokud stopwords je zadán. Povolené hodnoty zahrnují:arabic, armenian, , , bulgariandanishbasquecatalanbrazilianczech, , dutch, english, galicianfrenchgreekirishlatvianitalianindonesiannorwegianhindihungarianportuguesefinnishromaniangermanpersian, spanishrussiansoraniswedish, thai, turkishvýchozí: . english Nelze zadat, pokud stopwords je zadán.

ignoreCase (typ: bool) – Pokud je true, všechna slova jsou nejprve malá písmena. 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 Porovná jednoslovné nebo víceslovné synonyma v datovém proudu tokenů.

Možnosti

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

-neuvěřitelné, neuvěřitelné, báječné => úžasné - všechny termíny na levé straně => symbol jsou nahrazeny všemi pojmy na jeho pravé straně.

-neuvěřitelné, neuvěřitelné, úžasné, úžasné - čárkami oddělený seznam ekvivalentních slov. Nastavte možnost rozbalení a změňte způsob interpretace tohoto seznamu.

ignoreCase (typ: bool) – vstup s přeložením velkých a velkých písmen pro porovnávání. Výchozí hodnotou je hodnota false.

expand (typ: bool) – Pokud je pravda, všechna slova v seznamu synonym (pokud => notace se nepoužívá) mapují na sebe navzájem.
Následující seznam: neuvěřitelné, neuvěřitelné, úžasné, úžasné, je ekvivalentní: neuvěřitelné, neuvěřitelné, úžasné, úžasné => neuvěřitelné, neuvěřitelné, úžasné, úžasné, úžasné

- Pokud je false, následující seznam: neuvěřitelné, neuvěřitelné, báječné, úžasné jsou ekvivalentní: neuvěřitelné, neuvěřitelné, úžasné, úžasné => neuvěřitelné.
Trim (typ platí jenom v případech, kdy jsou k dispozici možnosti) Oříznou počáteční a koncové prázdné znaky z tokenů.
truncate TruncateTokenFilter Zkrátí termíny na určitou délku.

Možnosti

délka (typ: int) – Výchozí hodnota: 300, maximum: 300. Povinný:
unique UniqueTokenFilter Vyfiltruje tokeny se stejným textem jako předchozí token.

Možnosti

onlyOnSamePosition (typ: bool) – Pokud je nastavená, odeberte duplicity pouze na stejné pozici. Výchozí hodnota je true.
Velká (typ platí jenom v případech, kdy jsou k dispozici možnosti) Normalizuje text tokenu na velká písmena.
word_delimiter WordDelimiterTokenFilter Rozdělí slova do dílčích slov a provede volitelné transformace skupin podwordů.

Možnosti

generateWordParts (typ: bool) - Způsobí generování částí slov, například AzureSearch se stane AzureSearch. Výchozí hodnota je true.

generateNumberParts (typ: bool) - Způsobí vygenerování číselných podwordů. Výchozí hodnota je true.

catenateWords (typ: bool) - Způsobí, že maximální počet slovních částí bude catenated, například Azure-Search se stane AzureSearch. Výchozí hodnotou je hodnota false.

catenateNumbers (typ: bool) - Způsobí, že maximální počet částí bude catenated, například 1-2 se stane 12. Výchozí hodnotou je hodnota false.

catenateAll (typ: bool) - Způsobí, že všechny části podsloví budou catenated, např Azure-Search-1AzureSearch1. Výchozí hodnotou je hodnota false.

splitOnCaseChange (typ: bool) - Pokud je pravda, rozdělí slova na caseChange, například AzureSearch se stane AzureSearch. Výchozí hodnota je true.

preserveOriginal - Způsobí zachování původních slov a přidání do seznamu podwordů. Výchozí hodnotou je hodnota false.

splitOnNumerics (typ: bool) - Pokud je pravda, rozdělí se například Azure1SearchAzure1Searchna čísla . Výchozí hodnota je true.

stemEnglishPossessive (typ: bool) - Způsobí odebrání koncového 's slova pro každý podword. Výchozí hodnota je true.

protectedWords (typ: pole řetězců) – Tokeny pro ochranu před oddělovači. Výchozí hodnota je prázdný seznam.

1 Typy filtru tokenů jsou vždy předpony v kódu tak #Microsoft.Azure.Search , aby ArabicNormalizationTokenFilter byly skutečně zadány jako #Microsoft.Azure.Search.ArabicNormalizationTokenFilter. Odebrali jsme předponu, abychom zmenšili šířku tabulky, ale nezapomeňte ji zahrnout do kódu.

Viz také