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ů.
Fonetické vyhledávání. 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 indexAnalyzer
searchAnalyzer
.
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ílucharFilters
. 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řidejtetokenFilter
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"
}
Response
{
"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, KOMENTÁŘE, DOTALL, LITERÁL, MULTILINE, UNICODE_CASE, 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. |
standard (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. |
prázdné místo | (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. |
mapující | 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é. |
dopis | (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ými písmeny | (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 , , chineseTraditional chineseSimplified croatian czech danish dutch english french german greek gujarati hindi icelandic indonesian italian japanese kannada korean malay malayalam marathi norwegianBokmaal polish portuguese portugueseBrazilian punjabi romanian russian serbianCyrillic serbianLatin slovenian spanish swedish tamil telugu thai ukrainian urdu vietnamese |
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 , czech danish dutch english estonian finnish french german greek gujarati hebrew hindi hungarian icelandic indonesian italian kannada latvian lithuanian malay malayalam marathi norwegianBokmaal polish portuguese portugueseBrazilian punjabi romanian russian serbianCyrillic serbianLatin slovak slovenian spanish swedish tamil telugu turkish ukrainian urdu |
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, KOMENTÁŘE, DOTALL, LITERÁL, MULTILINE, UNICODE_CASE, 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é. |
prázdné místo | (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 |
elize | 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ými písmeny | (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ý | Fonetický Filtr | Vytváření tokenů pro fonetické shody Možnosti kodér (typ: řetězec) – fonetický kodér, který se má použít. Povolené hodnoty zahrnují: metaphone , doubleMetaphone , soundex , refinedSoundex , caverphone1 caverphone2 , 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 , ao oe 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ěhová koule | SnowballTokenFilter | Snowball Token Filter. Možnosti jazyk (typ: řetězec) - Povolené hodnoty: , , , , , dutch english , finnish german2 hungarian kp lovins french norwegian italian german , porter , , spanish russian swedish romanian portuguese danish catalan basque armenian turkish |
sorani_normalization | SoraniNormalizationTokenFilter | Normalizuje reprezentaci Sorani textu v kódování Unicode.Možnosti Nezaokrouhlovat. |
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 , , , bulgarian danish basque catalan brazilian czech , , dutch , english , galician french greek irish latvian italian indonesian norwegian hindi hungarian portuguese finnish romanian german persian , spanish russian sorani swedish , thai , turkish vý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é. |
zastřihnout | (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. |
napsaný velkými písmeny | (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 Azure Search . 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-1 AzureSearch1 . Výchozí hodnotou je hodnota false.splitOnCaseChange (typ: bool) - Pokud je pravda, rozdělí slova na caseChange, například AzureSearch se stane Azure Search . 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 Azure1Search Azure 1 Search na čí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.