Lägga till anpassade analysverktyg i strängfält i ett Azure Cognitive Search index
En anpassad analys är en användardefinierad kombination av tokeniserare, ett eller flera tokenfilter och ett eller flera teckenfilter. En anpassad analys anges i ett sökindex och refereras sedan till fältdefinitioner som kräver anpassad analys. En anpassad analysator anropas per fält. Attribut i fältet avgör om det används för indexering, frågor eller båda.
I en anpassad analysator förbereder teckenfilter indatatexten innan den bearbetas av tokeniseraren (till exempel genom att ta bort markering). Därefter delar tokeniseraren upp text i token. Slutligen ändrar tokenfilter de token som genereras av tokeniseraren. Begrepp och exempel finns i Analysverktyg i Azure Cognitive Search.
Varför ska du använda en anpassad analys?
En anpassad analysverktyg ger dig kontroll över processen att konvertera text till indexerbara och sökbara token genom att låta dig välja vilka typer av analys eller filtrering som ska anropas och i vilken ordning de inträffar.
Skapa och tilldela en anpassad analys om inget av standardverktygen (Standard Lucence), inbyggda eller språkanalysverktyg räcker för dina behov. Du kan också skapa en anpassad analys om du vill använda en inbyggd analys med anpassade alternativ. Om du till exempel vill ändra maxTokenLength på Standard skapar du en anpassad analysator med ett användardefinierat namn för att ange det alternativet.
Exempel på scenarier där anpassade analysverktyg kan vara användbara:
Använd teckenfilter för att ta bort HTML-kod innan textindata tokeniseras eller ersätt vissa tecken eller symboler.
Fonetiksökning. Lägg till ett fonetikfilter för att aktivera sökning baserat på hur ett ord låter, inte hur det stavas.
Inaktivera lexikal analys. Använd nyckelordsanalys för att skapa sökbara fält som inte analyseras.
Snabb sökning med prefix/suffix. Lägg till filtret Edge N-gram token för att indexera prefix för ord för att aktivera snabb prefixmatchning. Kombinera det med filtret Omvänd token för att utföra suffixmatchning.
Anpassad tokenisering. Använd till exempel blankstegstokeniseraren för att dela upp meningar i token med blanksteg som avgränsare
ASCII-vikning. Lägg till standard-ASCII-vikningsfiltret för att normalisera diakritiska tecken som ö eller ê i söktermer.
Anteckning
Anpassade analysverktyg exponeras inte i Azure Portal. Det enda sättet att lägga till en anpassad analys är genom kod som definierar ett index.
Skapa ett anpassat analysverktyg
Om du vill skapa en anpassad analysator anger du den i avsnittet "analyzerar" i ett index vid designtillfället och refererar sedan till den på sökbara fält, Edm.String-fält med antingen egenskapen "analyzer" eller "indexAnalyzer" och "searchAnalyzer".
En analysdefinition innehåller ett namn, en typ, ett eller flera teckenfilter, högst en tokeniserare och ett eller flera tokenfilter för bearbetning efter tokenisering. Teckenfilter tillämpas före tokenisering. Tokenfilter och teckenfilter tillämpas från vänster till höger.
Namn i en anpassad analysverktyg måste vara unika och får inte vara samma som någon av de inbyggda analysverktygen, tokeniserare, tokenfilter eller teckenfilter. Den får bara innehålla bokstäver, siffror, blanksteg, bindestreck eller understreck, kan bara börja och sluta med alfanumeriska tecken och är begränsad till 128 tecken.
Typen måste vara #Microsoft. Azure.Search.CustomAnalyzer.
"charFilters" kan vara ett eller flera filter från teckenfilter som bearbetas före tokenisering i den angivna ordningen. Vissa teckenfilter har alternativ, som kan anges i ett "charFilter-avsnitt. Teckenfilter är valfria.
"tokenizer" är exakt en tokeniserare. Ett värde krävs. Om du behöver mer än en tokeniserare kan du skapa flera anpassade analysverktyg och tilldela dem fält för fält i indexschemat.
"tokenFilters" kan vara ett eller flera filter från tokenfilter, som bearbetas efter tokenisering, i den angivna ordningen. För tokenfilter som har alternativ lägger du till ett "tokenFilter"-avsnitt för att ange konfigurationen. Tokenfilter är valfria.
Analysverktyg får inte producera token som är längre än 300 tecken, annars misslyckas indexeringen. Om du vill trimma en lång token eller exkludera dem använder du TruncateTokenFilter respektive LengthTokenFilter . Se Tokenfilter för referens.
"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,
...
}
]
I en indexdefinition kan du placera det här avsnittet var som helst i brödtexten i en begäran om att skapa index, men vanligtvis hamnar det i slutet:
{
"name": "name_of_index",
"fields": [ ],
"suggesters": [ ],
"scoringProfiles": [ ],
"defaultScoringProfile": (optional) "...",
"corsOptions": (optional) { },
"analyzers":(optional)[ ],
"charFilters":(optional)[ ],
"tokenizers":(optional)[ ],
"tokenFilters":(optional)[ ]
}
Analysdefinitionen är en del av det större indexet. Definitioner för teckenfilter, tokeniserare och tokenfilter läggs bara till i indexet om du ställer in anpassade alternativ. Om du vill använda ett befintligt filter eller tokeniserare i befintligt fall anger du det efter namn i analysdefinitionen. Mer information finns i Skapa index (REST). Fler exempel finns i Lägga till analysverktyg i Azure Cognitive Search.
Testa anpassade analysverktyg
Du kan använda Test Analyzer (REST) för att se hur ett analysverktyg delar upp text i token.
Förfrågan
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
}
]
}
Uppdatera anpassade analysverktyg
När en analysator, en tokeniserare, ett tokenfilter eller ett teckenfilter har definierats kan den inte ändras. Nya kan bara läggas till i ett befintligt index om allowIndexDowntime
flaggan är inställd på true i begäran om indexuppdatering:
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
Den här åtgärden tar ditt index offline i minst några sekunder, vilket gör att indexeringen och frågebegäranden misslyckas. Prestanda- och skrivtillgängligheten för indexet kan försämras i flera minuter efter att indexet har uppdaterats eller längre för mycket stora index, men dessa effekter är tillfälliga och löses så småningom på egen hand.
Inbyggda analysverktyg
Om du vill använda en inbyggd analys med anpassade alternativ är det den mekanism som du anger dessa alternativ för att skapa en anpassad analys. Om du däremot vill använda en inbyggd analys som den är behöver du bara referera till den efter namn i fältdefinitionen.
analyzer_name | analyzer_type1 | Beskrivning och alternativ |
---|---|---|
Sökord | (typen gäller endast när alternativen är tillgängliga) | Behandlar hela innehållet i ett fält som en enda token. Detta är användbart för data som postnummer, ID:t och vissa produktnamn. |
Mönster | PatternAnalyzer | Separerar text flexibelt i termer via ett reguljärt uttrycksmönster. Alternativ gemener (typ: bool) – Avgör om termerna är lägre. Standardvärdet är sant. pattern (type: string) – Ett mönster för reguljära uttryck som matchar tokenavgränsare. Standardvärdet är \W+ , som matchar icke-ordtecken. flaggor (typ: sträng) – Flaggor för reguljära uttryck. Standardvärdet är en tom sträng. Tillåtna värden: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES stoppord (typ: strängmatris) – En lista med stoppord. Standardvärdet är en tom lista. |
Enkel | (typen gäller endast när alternativen är tillgängliga) | Delar upp text med icke-bokstäver och konverterar dem till gemener. |
standard (Kallas även standard.lucene) | StandardAnalyzer | Standard Lucene analyzer, som består av standardtokeniseraren, gemener och stoppfilter. Alternativ maxTokenLength (typ: int) – Maximal tokenlängd. Standardvärdet är 255. Token som är längre än den maximala längden delas. Maximal tokenlängd som kan användas är 300 tecken. stopwords (typ: strängmatris) – En lista med stoppord. Standardvärdet är en tom lista. |
standardasciifolding.lucene | (typen gäller endast när det finns tillgängliga alternativ) | Standardanalys med Ascii-vikningsfilter. |
Stanna | StopAnalyzer | Delar upp text med icke-bokstäver, tillämpar tokenfiltren med gemener och stoppord. Alternativ stopwords (typ: strängmatris) – En lista med stoppord. Standardvärdet är en fördefinierad lista för engelska. |
Blanksteg | (typen gäller endast när det finns tillgängliga alternativ) | En analysator som använder blankstegstokeniseraren. Token som är längre än 255 tecken delas upp. |
1 Analystyper är alltid prefix i kod med "#Microsoft. Azure.Search" så att "PatternAnalyzer" faktiskt skulle anges som "#Microsoft. Azure.Search.PatternAnalyzer". Vi har tagit bort prefixet för korthet, men prefixet krävs i koden.
Den analyzer_type tillhandahålls endast för analysverktyg som kan anpassas. Om det inte finns några alternativ, vilket är fallet med nyckelordsanalysen, finns det inga associerade #Microsoft. Azure.Search-typ.
Teckenfilter
Teckenfilter lägger till bearbetning innan en sträng når tokenizern.
Kognitiv sökning stöder teckenfilter i följande lista. Mer information om var och en finns i Lucene API-referensen.
char_filter_name | char_filter_type1 | Beskrivning och alternativ |
---|---|---|
html_strip | (typen gäller endast när det finns tillgängliga alternativ) | Ett teckenfilter som försöker ta bort HTML-konstruktioner. |
mapping | MappingCharFilter | Ett teckenfilter som tillämpar mappningar som definierats med mappningsalternativet. Matchningen är girig (den längsta mönstermatchningen vid en viss tidpunkt vinner). Ersättning tillåts vara den tomma strängen. Alternativ mappningar (typ: strängmatris) – En lista över mappningar i följande format: "a=>b" (alla förekomster av tecknet "a" ersätts med tecknet "b"). Krävs. |
pattern_replace | PatternReplaceCharFilter | Ett teckenfilter som ersätter tecken i indatasträngen. Det använder ett reguljärt uttryck för att identifiera teckensekvenser för att bevara och ett ersättningsmönster för att identifiera tecken som ska ersättas. Till exempel indatatext = "aa bb aa bb", pattern="(aa)\\s+(bb)" replacement="$1#$2", result = "aa#bb aa#bb". Alternativ pattern (type: string) – Obligatoriskt. ersättning (typ: sträng) – Krävs. |
1 Teckenfiltertyper föregås alltid av kod med "#Microsoft. Azure.Search" så att "MappingCharFilter" faktiskt skulle anges som "#Microsoft. Azure.Search.MappingCharFilter. Vi har tagit bort prefixet för att minska tabellens bredd, men kom ihåg att inkludera det i koden. Observera att char_filter_type endast tillhandahålls för filter som kan anpassas. Om det inte finns några alternativ, vilket är fallet med html_strip, finns det inga associerade #Microsoft. Azure.Search-typ.
Tokenizers
En tokeniserare delar upp kontinuerlig text i en sekvens med token, till exempel att dela upp en mening i ord eller ett ord i rotformer.
Cognitive Search stöder tokenizers i följande lista. Mer information om var och en finns i Lucene API-referensen.
tokenizer_name | tokenizer_type1 | Beskrivning och alternativ |
---|---|---|
Klassiska | ClassicTokenizer | Grammatikbaserad tokenizer som lämpar sig för bearbetning av de flesta europeiska dokument. Alternativ maxTokenLength (typ: int) – Maximal tokenlängd. Standard: 255, max: 300. Token som är längre än den maximala längden delas upp. |
edgeNGram | EdgeNGramTokenizer | Tokeniserar indata från en kant till n-gram av angivna storlekar. Alternativ minGram (typ: int) – Standard: 1, max: 300. maxGram (typ: int) – Standard: 2, max: 300. Måste vara större än minGram. tokenChars (typ: strängmatris) – Teckenklasser som ska behållas i token. Tillåtna värden: "letter", "digit", "whitespace", "punctuation", "symbol". Standardvärdet är en tom matris – behåller alla tecken. |
keyword_v2 | KeywordTokenizerV2 | Genererar hela indata som en enda token. Alternativ maxTokenLength (typ: int) – Maximal tokenlängd. Standard: 256, max: 300. Token som är längre än den maximala längden delas upp. |
Brev | (typen gäller endast när det finns tillgängliga alternativ) | Delar upp text med icke-bokstäver. Token som är längre än 255 tecken delas upp. |
Gemener | (typen gäller endast när det finns tillgängliga alternativ) | Delar upp text med icke-bokstäver och konverterar dem till gemener. Token som är längre än 255 tecken delas upp. |
microsoft_language_tokenizer | MicrosoftLanguageTokenizer | Delar upp text med språkspecifika regler. Alternativ maxTokenLength (typ: int) – Den maximala tokenlängden, standard: 255, max: 300. Token som är längre än den maximala längden delas upp. Token som är längre än 300 tecken delas först upp i token med längden 300 och sedan delas var och en av dessa tokens baserat på maxTokenLength-uppsättningen. isSearchTokenizer (typ: bool) – Ställ in på sant om det används som söktokeniserare, inställt på false om det används som indexeringstokeniserare. language (type: string) – Language to use, default "english". Tillåtna värden är: "bangla", "bulgarian", "catalan", "chineseSimplified", "chineseTraditional", "croatian", "czech", "danish", "dutch", "english", "french", "german", "greek", "gujarati", "hindi", "icelandic", "indonesian", "italian", "japanese", "kan"kan "korean", "malay", "malayalam", "marathi", "norwegianBokmaal", "polish", "portuguese", "portugueseBrazilian", "punjabi", "romanian", "russian", "serbianCyrillic", "serbianLatin", "slovenian", "spanish", "swedish", "tamil" , "telugu", "thai", "ukrainska", "urdu", "vietnamesiska" |
microsoft_language_stemming_tokenizer | MicrosoftLanguageStemmingTokenizer | Delar upp text med hjälp av språkspecifika regler och minskar ord till sina basformulär. Den här tokenizern utför lemmatisering. Alternativ maxTokenLength (typ: int) – Den maximala tokenlängden, standard: 255, max: 300. Token som är längre än den maximala längden delas upp. Token som är längre än 300 tecken delas först upp i token med längden 300 och sedan delas var och en av dessa tokens baserat på maxTokenLength-uppsättningen. isSearchTokenizer (typ: bool) – Ställ in på sant om det används som söktokeniserare, inställt på false om det används som indexeringstokeniserare. language (type: string) – Language to use, default "english". Tillåtna värden är: "arabic", "bangla", "bulgarian", "catalan", "croatian", "czech", "danish", "dutch", "english", "estonian", "finnish", "french", "german", "greek", "gujarati", "hebrew", "hindi", "hungarian", "icelandic", "indonesian", "italian", "italian", "kannada", "lettiska", "litauiska", "malajiska", "malayalam", "marathi", "norwegianBokmaal", "polish", "portuguese", "portugueseBrazilian", "punjabi", "romanian", "russian", "serbianCyrillic", "serbianLatin", "slovak", "slovenienn", " spanish", "swedish", "tamil", "telugu", "turkish", "ukrainian", "urdu" |
nGram | NGramTokenizer | Tokeniserar indata till n-gram av de angivna storlekarna. Alternativ minGram (typ: int) – Standard: 1, max: 300. maxGram (typ: int) – Standard: 2, max: 300. Måste vara större än minGram. tokenChars (typ: strängmatris) – Teckenklasser som ska behållas i token. Tillåtna värden: "letter", "digit", "whitespace", "punctuation", "symbol". Standardvärdet är en tom matris – behåller alla tecken. |
path_hierarchy_v2 | PathHierarchyTokenizerV2 | Tokenizer för sökvägsliknande hierarkier. Alternativ avgränsare (typ: sträng) – Standard: '/. replacement (type: string) – Om det har angetts ersätter avgränsartecknet. Standardvärdet är samma som värdet för avgränsare. maxTokenLength (typ: int) – Maximal tokenlängd. Standard: 300, max: 300. Sökvägar som är längre än maxTokenLength ignoreras. reverse (typ: bool) – Om det är sant genererar token i omvänd ordning. Standard: falskt. skip (type: bool) – Inledande token att hoppa över. Standardvärdet är 0. |
Mönster | PatternTokenizer | Den här tokenizern använder regexmönstermatchning för att konstruera distinkta token. Alternativpattern (type: string) – Mönster för reguljära uttryck som matchar tokenavgränsare. Standardvärdet är \W+ , som matchar icke-ordtecken. flags (type: string) – Flaggor för reguljära uttryck. Standardvärdet är en tom sträng. Tillåtna värden: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES grupp (typ: int) – Vilken grupp som ska extraheras till token. Standardvärdet är -1 (delad). |
standard_v2 | StandardTokenizerV2 | Delar upp text efter Unicode-reglerna för textsegmentering. Alternativ maxTokenLength (typ: int) – Maximal tokenlängd. Standard: 255, max: 300. Token som är längre än den maximala längden delas upp. |
uax_url_email | UaxUrlEmailTokenizer | Tokeniserar URL:ar och e-postmeddelanden som en token. Alternativ maxTokenLength (typ: int) – Maximal tokenlängd. Standard: 255, max: 300. Token som är längre än den maximala längden delas upp. |
Blanksteg | (typen gäller endast när det finns tillgängliga alternativ) | Delar upp text i tomt utrymme. Token som är längre än 255 tecken delas upp. |
1 Tokenizer-typer föregås alltid av kod med "#Microsoft. Azure.Search" så att "ClassicTokenizer" faktiskt skulle anges som "#Microsoft. Azure.Search.ClassicTokenizer". Vi har tagit bort prefixet för att minska tabellens bredd, men kom ihåg att inkludera det i koden. Observera att tokenizer_type endast tillhandahålls för tokenizers som kan anpassas. Om det inte finns några alternativ, vilket är fallet med bokstaven tokenizer, finns det ingen associerad #Microsoft. Azure.Search-typ.
Tokenfilter
Ett tokenfilter används för att filtrera bort eller ändra de token som genereras av en tokenizer. Du kan till exempel ange ett filter med gemener som konverterar alla tecken till gemener. Du kan ha flera tokenfilter i ett anpassat analysverktyg. Tokenfilter körs i den ordning som de visas.
I tabellen nedan är de tokenfilter som implementeras med Apache Lucene länkade till Lucene API-dokumentationen.
token_filter_name | token_filter_type1 | Beskrivning och alternativ |
---|---|---|
arabic_normalization | (typen gäller endast när det finns tillgängliga alternativ) | Ett tokenfilter som tillämpar den arabiska normaliseraren för att normalisera ortografin. |
Apostrof | (typen gäller endast när det finns tillgängliga alternativ) | Tar bort alla tecken efter en apostrof (inklusive själva apostrofen). |
asciifolding | AsciiFoldingTokenFilter | Konverterar alfabetiska, numeriska och symboliska Unicode-tecken som inte finns i de första 127 ASCII-tecknen (Unicode-blocket "Basic Latin" ) till deras ASCII-motsvarigheter, om det finns något. Alternativ preserveOriginal (typ: bool) – Om det är sant behålls den ursprungliga token. Standardvärdet är False. |
cjk_bigram | CjkBigramTokenFilter | Bildar bigrams av CJK-termer som genereras från StandardTokenizer. Alternativ ignoreScripts (typ: strängmatris) – Skript att ignorera. Tillåtna värden är: "han", "hiragana", "katakana", "hangul". Standardvärdet är en tom lista. outputUnigrams (typ: bool) – Ange till sant om du alltid vill mata ut både unigram och bigrams. Standardvärdet är False. |
cjk_width | (typen gäller endast när det finns tillgängliga alternativ) | Normaliserar skillnader i CJK-bredd. Viker ASCII-varianterna med full bredd till motsvarande katakanavarianter med grundläggande latin och halvbredd till motsvarande kana. |
Klassiska | (typen gäller endast när det finns tillgängliga alternativ) | Tar bort engelska possessives och punkter från förkortningar. |
common_grams | CommonGramTokenFilter | Skapa bigrams för ofta förekommande termer vid indexering. Enkla termer indexeras fortfarande också, med bigrams överlagrade. Alternativ commonWords (typ: strängmatris) – Uppsättningen vanliga ord. Standardvärdet är en tom lista. Krävs. ignoreCase (typ: bool) – Om sant är matchning skiftlägesokänsligt. Standardvärdet är False. queryMode (typ: bool) – Genererar bigrams och tar sedan bort vanliga ord och enkla termer följt av ett vanligt ord. Standardvärdet är False. |
dictionary_decompounder | DictionaryDecompounderTokenFilter | Sönderdelar sammansatta ord som finns på många germanska språk. Alternativ wordList (typ: strängmatris) – Listan med ord som ska matchas mot. Standardvärdet är en tom lista. Krävs. minWordSize (typ: int) – Endast ord längre än detta bearbetas. Standardvärdet är 5. minSubwordSize (typ: int) – Endast underord längre än detta matas ut. Standardvärdet är 2. maxSubwordSize (typ: int) – Endast underord som är kortare än detta matas ut. Standardvärdet är 15. onlyLongestMatch (typ: bool) – Lägg bara till det längsta matchande underordet i utdata. Standardvärdet är False. |
edgeNGram_v2 | EdgeNGramTokenFilterV2 | Genererar n-gram av den eller de angivna storlekarna från början framifrån eller baksidan av en indatatoken. Alternativ minGram (typ: int) – Standard: 1, max: 300. maxGram (typ: int) – Standard: 2, max 300. Måste vara större än minGram. side (type: string) – Anger vilken sida av indata som n-gram ska genereras från. Tillåtna värden: "front", "back" |
elision | ElisionTokenFilter | Tar bort elisions. Till exempel konverteras "l'avion" (planet) till "avion" (plan). Alternativ artiklar (typ: strängmatris) – En uppsättning artiklar att ta bort. Standardvärdet är en tom lista. Om det inte finns någon lista över angivna artiklar tas alla franska artiklar bort som standard. |
german_normalization | (typen gäller endast när det finns tillgängliga alternativ) | Normaliserar tyska tecken enligt heuristiken i snöbollsalgoritmen German2 . |
hindi_normalization | (typen gäller endast när det finns tillgängliga alternativ) | Normaliserar text på hindi för att ta bort vissa skillnader i stavningsvariationer. |
indic_normalization | IndicNormalizationTokenFilter | Normaliserar Unicode-representationen av text på indiska språk. |
Hålla | KeepTokenFilter | Ett tokenfilter som endast behåller token med text som finns i den angivna ordlistan. Alternativ keepWords (typ: strängmatris) – En lista med ord att behålla. Standardvärdet är en tom lista. Krävs. keepWordsCase (typ: bool) – Om sant, gemener alla ord först. Standardvärdet är False. |
keyword_marker | KeywordMarkerTokenFilter | Markerar termer som nyckelord. Alternativ nyckelord (typ: strängmatris) – En lista med ord som ska markeras som nyckelord. Standardvärdet är en tom lista. Krävs. ignoreCase (typ: bool) – Om sant, gemener alla ord först. Standardvärdet är False. |
keyword_repeat | (typen gäller endast när det finns tillgängliga alternativ) | Genererar varje inkommande token två gånger en gång som nyckelord och en gång som icke-nyckelord. |
kstem | (typen gäller endast när det finns tillgängliga alternativ) | Ett högpresterande kstem-filter för engelska. |
length | LengthTokenFilter | Tar bort ord som är för långa eller för korta. Alternativ min (typ: int) – Det minsta antalet. Standard: 0, max: 300. max (typ: int) – Det maximala antalet. Standard: 300, max: 300. |
Gräns | Microsoft. Azure.Search.LimitTokenFilter | Begränsar antalet token vid indexering. Alternativ maxTokenCount (typ: int) – Maximalt antal token som ska skapas. Standard är 1. consumeAllTokens (typ: bool) – Om alla token från indata måste användas även om maxTokenCount nås. Standardvärdet är False. |
Gemener | (typen gäller endast när det finns tillgängliga alternativ) | Normaliserar tokentext till gemener. |
nGram_v2 | NGramTokenFilterV2 | Genererar n-gram av den eller de angivna storlekarna. Alternativ minGram (typ: int) – Standard: 1, max: 300. maxGram (typ: int) – Standard: 2, max 300. Måste vara större än minGram. |
pattern_capture | PatternCaptureTokenFilter | Använder Java-regex för att generera flera token, en för varje avbildningsgrupp i ett eller flera mönster. Alternativ mönster (typ: strängmatris) – En lista med mönster som ska matchas mot varje token. Krävs. preserveOriginal (typ: bool) – Ange till true för att returnera den ursprungliga token även om något av mönstren matchar, standard: true |
pattern_replace | PatternReplaceTokenFilter | Ett tokenfilter som tillämpar ett mönster på varje token i strömmen och ersätter matchningsförekomster med den angivna ersättningssträngen. Alternativ pattern (type: string) – Obligatoriskt. ersättning (typ: sträng) – Krävs. |
persian_normalization | (typen gäller endast när det finns tillgängliga alternativ) | Tillämpar normalisering för persiska. |
Fonetiska | PhoneticTokenFilter | Skapa token för fonetiska matchningar. Alternativ kodare (typ: sträng) – Fonetikkodare som ska användas. Tillåtna värden är: "metafon", "doubleMetaphone", "soundex", "refinedSoundex", "caverphone1", "caverphone2", "cologne", "nysiis", "koelnerPhonetik", "haasePhonetik", "beiderMorse". Standard: "metafon". Standardvärdet är metafon. Mer information finns i kodaren . replace (type: bool) – Sant om kodade token ska ersätta ursprungliga token, false om de ska läggas till som synonymer. Standardvärdet är true. |
porter_stem | (typen gäller endast när det finns tillgängliga alternativ) | Transformerar tokenströmmen enligt porteringsstammens algoritm. |
Omvänd | (typen gäller endast när det finns tillgängliga alternativ) | Kastar om tokensträngen. |
scandinavian_normalization | (typen gäller endast när det finns tillgängliga alternativ) | Normaliserar användningen av de utbytbara skandinaviska tecknen. |
scandinavian_folding | (typen gäller endast när det finns tillgängliga alternativ) | Viker skandinaviska karaktärer åÅäæÄÆ-a> och öÖøØ-o>. Det diskriminerar också användningen av dubbla vokaler aa, ae, ao, oe och oo, vilket bara lämnar den första. |
Singel | ShingleTokenFilter | Skapar kombinationer av token som en enda token. Alternativ maxShingleSize (typ: int) – Standardvärdet är 2. minShingleSize (typ: int) – Standardvärdet är 2. outputUnigrams (typ: bool) – om det är sant innehåller utdataströmmen indatatoken (unigram) samt bältros. Standardvärdet är true. outputUnigramsIfNoShingles (typ: bool) – Om det är sant åsidosätter du beteendet för outputUnigrams==false för de tider då inga bältros är tillgängliga. Standardvärdet är False. tokenSeparator (typ: sträng) – Strängen som ska användas när du kopplar intilliggande token för att bilda en bältros. Standardvärdet är " ". filterToken (typ: sträng) – Strängen som ska infogas för varje position där det inte finns någon token. Standardvärdet är "_". |
Snöboll | SnowballTokenFilter | Snöbollstokenfilter. Alternativ språk (typ: sträng) - Tillåtna värden inkluderar: "armeniska", "baskiska", "katalanska", "danska", "nederländska", "engelska", "finska", "franska", "tyska", "german2", "ungerska", "italienska", "kp", "lovins", "norwegian", "porter", "portugisiska", "rumänska", "ryska", "spanska", "svenska", "turkiska" |
sorani_normalization | SoraniNormalizationTokenFilter | Normaliserar Unicode-representationen av Sorani-text. Alternativ Inga. |
Stemmer | StemmerTokenFilter | Språkspecifikt ordstamsfilter. Alternativ language (type: string) – Tillåtna värden är: - "arabiska" - "armenisk" - "baskisk" - "brazilian" - "bulgariska" - "katalanska" - "tjeckiska" - "danska" - "dutch" - "dutchKp" - "english" - "lightEnglish" - "minimalEnglish" - "possessiveEnglish" - "porter2" - "lovins" - "finska" - "lightFinnish" - "franska" - "lightFrench" - "minimalFrench" - "galiciska" - "minimalGalician" - "tyska" - "german2" - "lightGerman" - "minimalGerman" - "grekiska" - "hindi" - "ungerska" - "lightHungarian" - "indonesiska" - "irish" - "italienska" - "lightItalian" - "sorani" - "lettiska" - "norska" - "lightNorwegian" - "minimalNorwegian" - "lightNynorsk" - "minimalNynorsk" - "portugisiska" - "lightPortuguese" - "minimalPortuguese" - "portugueseRslp" - "rumänska" - "ryska" - "lightRussian" - "spanska" - "lightSpanish" - "svenska" - "lightSwedish" - "turkiska" |
stemmer_override | StemmerOverrideTokenFilter | Ordliste-Stemmed-termer markeras som nyckelord, vilket förhindrar att de härstammar nedåt i kedjan. Måste placeras före eventuella härdningsfilter. Alternativ rules (type: string array) – Stemming rules in the following format "word => stem" for example "ran => run". Standardvärdet är en tom lista. Krävs. |
stopwords | StopwordsTokenFilter | Tar bort stoppord från en tokenström. Filtret använder som standard en fördefinierad stoppordlista för engelska. Alternativ stopwords (typ: strängmatris) – En lista med stoppord. Det går inte att ange om en stopwordsList har angetts. stopwordsList (typ: sträng) – En fördefinierad lista med stoppord. Det går inte att ange om "stopwords" har angetts. Tillåtna värden är:"arabic", "armenian", "basque", "brazilian", "bulgarian", "catalan", "czech", "danish", "dutch", "english", "finnish", "french", "galician", "german", "greek", "hindi", "ungerska", "indonesiska", "irish", "italian", "latvian", "norwegian", "persian", "portuguese", "romanian", "russian", "sorani", "spanish", "swedish", "thai", "turkish", default: "english". Det går inte att ange om "stopwords" har angetts. ignoreCase (typ: bool) – Om det är sant är alla ord gemener först. Standardvärdet är False. removeTrailing (typ: bool) – Om det är sant ignorerar du den sista söktermen om det är ett stoppord. Standardvärdet är sant. |
Synonym | SynonymTokenFilter | Matchar synonymer med ett eller flera ord i en tokenström. Alternativ synonymer (typ: strängmatris) – Krävs. Lista över synonymer i något av följande två format: -otroligt, otroligt, fantastiskt => fantastiskt - alla termer på vänster sida av => symbolen ersätts med alla termer på höger sida. -otroligt, otroligt, fantastiskt, fantastiskt - En kommaavgränsad lista med motsvarande ord. Ange alternativet expandera om du vill ändra hur den här listan ska tolkas. ignoreCase (typ: bool) – Skiftlägesdelegeringsindata för matchning. Standardvärdet är False. expand (type: bool) – Om det är sant mappar alla ord i listan med synonymer (om => notation inte används) till varandra. Följande lista: otroligt, otroligt, fantastiskt, fantastiskt motsvarar: otroligt, otroligt, fantastiskt, fantastiskt => otroligt, otroligt, fantastiskt, fantastiskt, fantastiskt - Om falskt, följande lista: otroligt, otroligt, fantastiskt, fantastiskt motsvarar: otroligt, otroligt, fantastiskt, fantastiskt => otroligt. |
Trimma | (typen gäller endast när alternativen är tillgängliga) | Trimmar inledande och avslutande blanksteg från token. |
Trunkera | TruncateTokenFilter | Trunkerar termerna till en viss längd. Alternativ längd (typ: int) – Standard: 300, max: 300. Krävs. |
Unik | UniqueTokenFilter | Filtrerar bort token med samma text som föregående token. Alternativ onlyOnSamePosition (typ: bool) – Om du anger det tar du bara bort dubbletter på samma position. Standardvärdet är sant. |
Versaler | (typen gäller endast när alternativen är tillgängliga) | Normaliserar tokentext till versaler. |
word_delimiter | WordDelimiterTokenFilter | Delar upp ord i underord och utför valfria transformeringar i underordsgrupper. Alternativ generateWordParts (typ: bool) – Gör att delar av ord genereras, till exempel "AzureSearch" blir "Azure" "Search". Standardvärdet är sant. generateNumberParts (typ: bool) – Gör att nummerunderord genereras. Standardvärdet är sant. catenateWords (typ: bool) – Orsakar maximala körningar av orddelar som ska catenated, till exempel "Azure-Search" blir "AzureSearch". Standardvärdet är False. catenateNumbers (typ: bool) – Orsakar maximala körningar av antal delar som ska catenated, till exempel "1-2" blir "12". Standardvärdet är False. catenateAll (typ: bool) – Gör att alla underordsdelar kategoriseras, t.ex. "Azure-Search-1" blir "AzureSearch1". Standardvärdet är False. splitOnCaseChange (typ: bool) – Om det är sant delar ord på caseChange, till exempel "AzureSearch" blir "Azure" "Search". Standardvärdet är sant. preserveOriginal – Gör att ursprungliga ord bevaras och läggs till i underordslistan. Standardvärdet är False. splitOnNumerics (typ: bool) – Om sant, delar på tal, till exempel "Azure1Search" blir "Azure" "1" "Search". Standardvärdet är sant. stemEnglishPossessive (typ: bool) – Gör att avslutande "s" tas bort för varje underord. Standardvärdet är sant. protectedWords (typ: strängmatris) – Token som skyddar mot att avgränsas. Standardvärdet är en tom lista. |
1 Tokenfiltertyper är alltid prefix i kod med "#Microsoft. Azure.Search" så att "ArabicNormalizationTokenFilter" faktiskt skulle anges som "#Microsoft. Azure.Search.ArabicNormalizationTokenFilter". Vi har tagit bort prefixet för att minska tabellens bredd, men kom ihåg att inkludera det i koden.