Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
Vlastní analyzátor je součástí lexikální analýzy obsahu prostého textu. Jedná se o uživatelsky definovanou kombinaci jednoho tokenizátoru, jednoho nebo více filtrů tokenů a jednoho nebo více filtrů znaků. Vlastní analyzátor je definován v indexu vyhledávání a poté je v definicích polí, které vyžadují vlastní analýzu, odkazován podle jeho názvu. Vlastní analyzátor se vyvolá pro každé pole. 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 Vyhledávač a kurz: Vytvoření vlastního analyzátoru pro telefonní čísla.
Proč používat vlastní analyzátor?
Vlastní analyzátor byste měli zvážit v klasických pracovních postupech vyhledávání, které neobsahují velké jazykové modely a jejich schopnost zpracovávat anomálie obsahu.
Ve vyhledávání tříd vám vlastní analyzátor poskytuje kontrolu nad procesem převodu prostého 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 dojde.
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 Lucene), 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 standard maxTokenLength Lucene, vytvořili byste vlastní analyzátor s uživatelsky definovaným názvem a tuto možnost nastavili.
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.
Rychlé hledání 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 reverzním tokenovým filtrem pro porovnávání dle přípon.
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.
Normalizace ASCII Přidejte standardní filtr pro filtrování ASCII k normalizaci diakritiky, jako je ö nebo ê, u hledaných výrazů.
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ý vytvoří schéma indexu.
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ů. Názvy se skládají z písmen, číslic, mezer, pomlček nebo podtržítka. Názvy musí začínat a končit znaky prostého textu. Názvy musí mít délku pod 128 znaků.
Typ musí být #Microsoft.Azure.Search.CustomAnalyzer.
charFiltersmůž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é.tokenizerje přesně jeden tokenizátor. Hodnota je povinná. 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í.tokenFiltersmůže být jeden nebo více filtrů z filtrů tokenů, které jsou zpracovány po tokenizaci ve zadaném pořadí. Pro filtry tokenů, které mají možnosti, přidejtetokenFilteroddí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 Vyhledávač.
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ěď
{
"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čí jej jednoduše uvést podle názvu v definici pole.
| analyzer_name | analyzer_type1 | 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 převedeny na malá písmena. Výchozí hodnota je true. pattern (typ: řetězec) – vzor regulárního výrazu, který odpovídá separátorů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 (typ: pole řetězců) – seznam zastavovacích slov. 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 (typ: pole řetězců) – seznam zastavovacích slov. 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 (typ: pole řetězců) – seznam zastavovacích slov. 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átorů jsou v kódu vždy předřazeny předponou #Microsoft.Azure.Search, aby PatternAnalyzer byly správně uvedeny 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 Vyhledávač 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_type1 | 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ý aplikuje mapování definovaná prostřednictvím volby mapování. Porovnávání je chamtivé (vítězí nejdelší shoda vzoru v daném místě). 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ů, které se mají zachovat, a vzor pro nahrazení k 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 filtrů znaků jsou v kódu vždy s předponou #Microsoft.Azure.Search, takže MappingCharFilter budou ve skutečnosti určeny 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 dělí větu na slova nebo slovo na kořenové tvary.
Azure AI Vyhledávač 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_type1 | Popis a možnosti |
|---|---|---|
| klasický | Klasický tokenizátor | 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ých 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é 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 na místech, která nejsou písmena. 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 true, pokud se používá jako tokenizátor indexování, nastavte hodnotu false. language (type: string) - Jazyk, který se má použít, výchozí english. Mezi povolené hodnoty patří: bangla, bulgarian, catalan, chineseSimplified, chineseTraditional, 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 redukuje slova na jejich základní tvary. 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 true, pokud se používá jako tokenizátor indexování, nastavte hodnotu false. 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 k přeskočení. 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 určený k rozpoznávání oddělovačů 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 podle mezer. Tokeny delší než 255 znaků jsou rozdělené. |
1 Typy tokenizátoru jsou vždy předponou v kódu, #Microsoft.Azure.Search takže 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 písmen, neexistuje žá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 propojené s dokumentací k rozhraní Lucene API.
| token_filter_name | token_filter_type1 | Popis a možnosti |
|---|---|---|
| arabská_normalizace | (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. Skládá varianty plné šířky ASCII na ekvivalentní základní latinské varianty a varianty Katakana s poloviční šířkou na ekvivalentní kana. |
| klasický | (typ platí jenom v případech, kdy jsou k dispozici možnosti) | Odebere anglické přivlastňovací tvary a tečky ze zkratek. |
| běžné gramy | CommonGramTokenFilter | Při indexování vytvořte bigramy pro často se vyskytující termíny. Jednotlivé termíny jsou stále indexovány, a to spolu s bigramy, které se překrývají. Možnosti commonWords (typ: pole řetězců) – sada běžných slov. Výchozí hodnota je prázdný seznam. Povinné ignoreCase (typ: boolean) – 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. |
| rozkladač_slovníků | DictionaryDecompounderTokenFilter | Rozloží složená slova nalezená v mnoha německých jazycích. Možnosti wordList (typ: pole řetězců) – seznam slov, proti kterým se porovnává. 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) – Budou zobrazeny pouze části slov delší než tato velikost. 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 | Generuje n-gramy daných velikostí z přední nebo zadní strany 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 (letadlo) se převede na avion (letadlo).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. |
| německá_normalizace | (typ platí jenom v případech, kdy jsou k dispozici možnosti) | Normalizuje německé znaky podle heuristiky German2 snowballového 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, nejprve převede všechna slova na malá písmena. 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, nejprve převedou všechna slova na malá písmena. 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. |
| délka | 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 | Generuje n-gramy daných velikostí. 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 vydávání více tokenů, jeden pro každou zachycovací skupinu 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é. |
| normalizace_perštiny | (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, caverphone1caverphone2, cologne, nysiis, koelnerPhonetik, haasePhonetik. beiderMorse Výchozí hodnota: metaphone. Výchozí hodnota je metafone.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 tok tokenů podle Porterova algoritmu stemmingu. |
| obrácené | (typ platí jenom v případech, kdy jsou k dispozici možnosti) | Obrátí řetězec tokenu. |
| skandinávská_normalizace | (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) | Zkombinuje skandinávské znaky åÅäæÄÆna a a öÖøØna o. Také diskriminuje použití dvojitých samohlásek aa, ae, ao, oe a oo, a ponechává 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 hodnota true, přepište chování outputUnigrams==false v případech, kdy nejsou k dispozici žádné shingly. Výchozí hodnotou je hodnota false. tokenSeparator (typ: řetězec) – Řetězec, který se použije při spojování sousedních tokenů k vytvoření shinglu. Výchozí hodnota je jedna prázdná mezera . filterToken (typ: řetězec) – řetězec, který se má vložit pro každou pozici, pro kterou neexistuje žádný token. Výchozí hodnota je _. |
| sněhová koule | SnowballTokenFilter | Snowball filtr tokenů. Možnosti jazyk (typ: řetězec) - Povolené hodnoty zahrnují: armenian, basque, catalan, danish, dutch, english, finnish, french, german, german2, hungarian, italian, kp, lovins, norwegian, porter, portuguese, romanian, russian, spanish, swedish, turkish |
| sorani_normalization | SoraniNormalizationTokenFilter | Normalizuje reprezentaci Sorani textu v kódování Unicode.Možnosti Žádný. |
| Stemmer (algoritmus pro úpravu slovních tvarů) | 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 slovníkové odvozené termíny jsou označeny jako klíčová slova, což zabraňuje dalšímu odvozování na konci řetězce. Musí být umístěn před všemi filtry stemmingu. Možnosti rules (type: string array) - Stemming rules in the following format word => stem například ran => run. Výchozí hodnota je prázdný seznam. Povinné |
| stopwords | StopwordsTokenFilter | Odstraňuje stop slova ze tokenového streamu. Ve výchozím nastavení filtr používá předdefinovaný seznam stop slov pro angličtinu. Možnosti stopwords (typ: pole řetězců) – seznam zastavovacích slov. Nelze specifikovat, pokud je specifikován seznam stopwordsList. stopwordsList (typ: řetězec) – předdefinovaný seznam stopslova. Nelze zadat, pokud byl stopwords zadán. Povolené hodnoty zahrnují: arabic, armenian, basque, brazilian, bulgarian, catalan, czech, danish, dutch, english, finnish, french, galician, german, greek, hindi, hungarian, indonesian, irish, italian, latvian, norwegian, persian, portuguese, romanian, russian, sorani, spanish, swedish, thai, turkish, výchozí: english. Nelze zadat, pokud byl stopwords zadán. ignoreCase (typ: bool) – Pokud je true, všechna slova jsou nejprve převedena na 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ě => symbolu jsou nahrazeny všemi termíny na jeho pravé straně. -neuvěřitelné, neuvěřitelné, úžasné, úžasné - čárkami oddělený seznam ekvivalentních slov. Nastavte funkci rozbalení pro změnu způsobu interpretace tohoto seznamu. ignoreCase (typ: bool) – ignoruje velikost písmen při porovnávání. Výchozí hodnotou je hodnota false. expand (typ: bool) – Jestliže je to pravda, všechna slova v seznamu synonym (pokud se => označení nepoužívá) jsou vzájemně propojená. Následující seznam: neuvěřitelné, neuvěřitelné, fantastické, úžasné je ekvivalentní: neuvěřitelné, neuvěřitelné, fantastické, úžasné => neuvěřitelné, neuvěřitelné, fantastické, úžasné - Pokud je nepravda, následující seznam: neuvěřitelné, neuvěřitelné, báječné, úžasné jsou ekvivalentní: neuvěřitelné, neuvěřitelné, báječné, úžasné => neuvěřitelné. |
| zastřihnout | (typ platí jenom v případech, kdy jsou k dispozici možnosti) | Orezuje počáteční a koncové prázdné znaky z tokenů. |
| zkrátit | TruncateTokenFilter | Zkrátí termíny na určitou délku. Možnosti délka (typ: int) – Výchozí hodnota: 300, maximum: 300. Povinné |
| jedinečný | 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 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í spojení maximálních sekvencí číselných částí, 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é 's pro každé podslovo. Výchozí hodnota je true.protectedWords (typ: pole řetězců) – tokeny k ochraně před oddělením. 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.