Lägga till anpassade analysverktyg i strängfält i ett Azure AI Search-index
En anpassad analys är en komponent i lexikal analys över oformaterad text. Det är en användardefinierad kombination av en tokeniserare, ett eller flera tokenfilter och ett eller flera teckenfilter. En anpassad analysator anges i ett sökindex och refereras sedan med namn på 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 tokenizern (till exempel genom att ta bort markering). Därefter delar tokeniseraren upp text i token. Slutligen ändrar tokenfilter de token som genereras av tokenizern. Begrepp och exempel finns i Analyzeers in Azure AI Search and Tutorial: Create a custom analyzer for phone numbers (Analyserare i Azure AI Search and Tutorial: Create a custom analyzer for phone numbers).
Varför ska du använda en anpassad analysator?
En anpassad analysator ger dig kontroll över processen att konvertera oformaterad 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 ska utföras.
Skapa och tilldela en anpassad analysator om ingen standardanalys (Standard Lucene), inbyggda analysverktyg eller språkanalysverktyg räcker för dina behov. Du kan också skapa en anpassad analysator om du vill använda en inbyggd analysator med anpassade alternativ. Om du till exempel vill ändra maxTokenLength
på Standard Lucene skapar du en anpassad analysator med ett användardefinierat namn för att ange det alternativet.
Scenarier där anpassade analysverktyg kan vara användbara är:
Använd teckenfilter för att ta bort HTML-kod innan textinmatningar tokeniseras eller ersätta 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 nyckelordsanalysen för att skapa sökbara fält som inte analyseras.
Snabb prefix-/suffixsökning. 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 t.ex. 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.
Kommentar
Anpassade analysverktyg exponeras inte i Azure Portal. Det enda sättet att lägga till en anpassad analys är genom kod som skapar ett indexschema.
Skapa ett anpassat analysverktyg
Om du vill skapa en anpassad analysator anger du den analyzers
i avsnittet i ett index vid designtillfället och refererar sedan till den i sökbara fält med Edm.String
antingen analyzer
egenskapen eller indexAnalyzer
paret och searchAnalyzer
.
En analysdefinition innehåller ett namn, en typ, ett eller flera teckenfilter, högst en tokenizer 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, tokenizers, tokenfilter eller teckenfilter. Namn består av bokstäver, siffror, blanksteg, bindestreck eller understreck. Namn måste börja och sluta med oformaterade texttecken. Namnen måste vara under 128 tecken långa.
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 ettcharFilters
avsnitt. Teckenfilter är valfria.tokenizer
är exakt en Tokenizer. Ett värde krävs. Om du behöver mer än en tokenizer 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 etttokenFilter
avsnitt för att ange konfigurationen. Tokenfilter är valfria.
Analysverktyg får inte skapa 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)[ ]
}
Analysatorns definition är en del av det större indexet. Definitioner för teckenfilter, tokenizers och tokenfilter läggs bara till i indexet om du anger anpassade alternativ. Om du vill använda ett befintligt filter eller tokeniserare i befintligt läge anger du det efter namn i analysdefinitionen. Mer information finns i Skapa index (REST). Fler exempel finns i Lägga till analysverktyg i Azure AI Search.
Testa anpassade analysverktyg
Du kan använda Test Analyzer (REST) för att se hur en analysator delar upp den angivna texten i token.
Begär
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 tokenizer, 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 indexerings- 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 slutligen på egen hand.
Inbyggda analysverktyg
Om du vill använda en inbyggd analysator med anpassade alternativ är det den mekanism som du anger dessa alternativ för att skapa en anpassad analysator. Om du däremot vill använda en inbyggd analysator som den är behöver du bara referera till den med namn i fältdefinitionen.
analyzer_name | analyzer_type 1 | Beskrivning och alternativ |
---|---|---|
nyckelord | (typ gäller endast när alternativ ä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 och vissa produktnamn. |
mönster | PatternAnalyzer | Flexibelt separerar text i termer via ett reguljärt uttrycksmönster. Alternativ gemener (typ: bool) – Avgör om termerna är nedsänkta. 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) – Reguljära uttrycksflaggor. Standardvärdet är en tom sträng. Tillåtna värden: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES stopwords (typ: strängmatris) – En lista med stoppord. Standardvärdet är en tom lista. |
enkel | (typ gäller endast när alternativ ä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 upp. 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 | (typ gäller endast när alternativ är tillgängliga) | Standardanalys med Ascii-vikningsfilter. |
Stanna | StopAnalyzer | Delar upp text med icke-bokstäver, tillämpar filter för gemener och stoppordstoken. Alternativ stopwords (typ: strängmatris) – En lista med stoppord. Standardvärdet är en fördefinierad lista för engelska. |
blanksteg | (typ gäller endast när alternativ är tillgängliga) | En analysator som använder blankstegstokeniseraren. Token som är längre än 255 tecken delas. |
1 Analyserartyper är alltid prefix i kod med #Microsoft.Azure.Search
sådana som PatternAnalyzer
faktiskt skulle anges som #Microsoft.Azure.Search.PatternAnalyzer
. Prefixet för korthet har tagits bort, men prefixet krävs i koden.
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 ingen associerad #Microsoft.Azure.Search-typ.
Teckenfilter
Teckenfilter lägger till bearbetning innan en sträng når tokenizern.
Azure AI Search stöder teckenfilter i följande lista. Mer information om var och en finns i Lucene API-referensen.
char_filter_name | char_filter_type 1 | Beskrivning och alternativ |
---|---|---|
html_strip | (typ gäller endast när alternativ är tillgängliga) | 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 (längst mönstermatchning vid en given poäng 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 ). Obligatoriskt. |
pattern_replace | PatternReplaceCharFilter | Ett teckenfilter som ersätter tecken i indatasträngen. Det använder ett reguljärt uttryck för att identifiera teckensekvenser som ska bevaras 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 mönster (typ: sträng) – Obligatoriskt. ersättning (typ: sträng) – Krävs. |
1 Teckenfiltertyper är alltid prefix i kod med #Microsoft.Azure.Search
sådana som MappingCharFilter
faktiskt skulle anges som #Microsoft.Azure.Search.MappingCharFilter
. Vi tog 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 ingen associerad #Microsoft.Azure.Search-typ.
Tokenizers
En tokeniserare delar in kontinuerlig text i en sekvens med token, till exempel att dela upp en mening i ord eller ett ord i rotformer.
Azure AI Search stöder tokenizers i följande lista. Mer information om var och en finns i Lucene API-referensen.
tokenizer_name | tokenizer_type 1 | Beskrivning och alternativ |
---|---|---|
klassisk | ClassicTokenizer | Grammatikbaserad tokenizer som är lämplig 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 | (typ gäller endast när alternativ är tillgängliga) | Delar upp text med icke-bokstäver. Token som är längre än 255 tecken delas. |
gemen | (typ gäller endast när alternativ är tillgängliga) | Delar upp text med icke-bokstäver och konverterar dem till gemener. Token som är längre än 255 tecken delas. |
microsoft_language_tokenizer | MicrosoftLanguageTokenizer | Delar upp text med hjälp av 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ängd 300 och sedan delas var och en av dessa token upp 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 , italian kannada malay korean japanese indonesian , malayalam , marathi , punjabi portuguese norwegianBokmaal polish romanian portugueseBrazilian , russian serbianLatin slovenian serbianCyrillic , spanish , , , swedish , , tamil , , telugu , , thai , ukrainian , , urdu vietnamese |
microsoft_language_stemming_tokenizer | MicrosoftLanguageStemmingTokenizer | Delar upp text med hjälp av språkspecifika regler och reducerar ord till deras 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ängd 300 och sedan delas var och en av dessa token upp 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 , hungarian indonesian hindi icelandic italian kannada , latvian , lithuanian , malay malayalam romanian serbianCyrillic polish norwegianBokmaal russian marathi portugueseBrazilian punjabi portuguese , serbianLatin , , slovak , , slovenian , , 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: '/. ersättning (typ: sträng) – Om det anges ersätter avgränsaren tecknet. 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. omvänd (typ: bool) – Om 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 regex-mönstermatchning för att konstruera distinkta token. Alternativ mönster (typ: sträng) – Reguljärt uttrycksmönster för att matcha tokenavgränsare. Standardvärdet är \W+ , som matchar icke-ordtecken. flaggor (typ: sträng) – Reguljära uttrycksflaggor. Standardvärdet är en tom sträng. Tillåtna värden: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES group (type: int) – Vilken grupp som ska extraheras till token. Standardvärdet är -1 (delad). |
standard_v2 | StandardTokenizerV2 | Bryter 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:er 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 | (typ gäller endast när alternativ är tillgängliga) | Delar upp text i blanksteg. Token som är längre än 255 tecken delas. |
1 Tokenizer-typer är alltid prefix i kod med #Microsoft.Azure.Search
sådana som ClassicTokenizer
faktiskt skulle anges som #Microsoft.Azure.Search.ClassicTokenizer
. Vi tog 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 bokstavstokeniseraren, 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 gemener som konverterar alla tecken till gemener. Du kan ha flera tokenfilter i en anpassad analysator. Tokenfilter körs i den ordning de visas.
I följande tabell är de tokenfilter som implementeras med Apache Lucene länkade till Lucene API-dokumentationen.
token_filter_name | token_filter_type 1 | Beskrivning och alternativ |
---|---|---|
arabic_normalization | (typ gäller endast när alternativ är tillgängliga) | Ett tokenfilter som tillämpar den arabiska normaliseraren för att normalisera ortografin. |
apostrof | (typ gäller endast när alternativ är tillgängliga) | Tar bort alla tecken efter en apostrofer (inklusive själva apostrofen). |
asciifolding | AsciiFoldingTokenFilter | Konverterar alfabetiska, numeriska och symboliska Unicode-tecken som inte finns i de första 127 ASCII-tecknen ( Basic Latin Unicode-blocket) till deras ASCII-motsvarigheter, om det finns något.Alternativ preserveOriginal (typ: bool) – Om sant behålls den ursprungliga token. Standardvärdet är falskt. |
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) – Ställ in på sant om du alltid vill mata ut både unigram och bigrams. Standardvärdet är falskt. |
cjk_width | (typ gäller endast när alternativ är tillgängliga) | Normaliserar skillnader i CJK-bredd. Viker ASCII-varianterna med full bredd till motsvarande katakanavarianter med grundläggande latinsk och halv bredd i motsvarande kana. |
klassisk | (typ gäller endast när alternativ är tillgängliga) | 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 också, med bigrams överlagrade. Alternativ commonWords (typ: strängmatris) – Uppsättningen med vanliga ord. Standardvärdet är en tom lista. Obligatoriskt. ignoreCase (typ: bool) – Om sant är matchning skiftlägesokänsligt. Standardvärdet är falskt. queryMode (typ: bool) – Genererar bigrams och tar sedan bort vanliga ord och enkla termer följt av ett vanligt ord. Standardvärdet är falskt. |
dictionary_decompounder | DictionaryDecompounderTokenFilter | Sönderdelas 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. Obligatoriskt. minWordSize (typ: int) – Endast ord längre än så bearbetas. Standardinställningen är 5. minSubwordSize (typ: int) – Endast underord som är längre än detta matas ut. Standardinställningen ä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 falskt. |
edgeNGram_v2 | EdgeNGramTokenFilterV2 | Genererar n-gram av 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 (typ: 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 l'avion konverteras (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 som standard bort. |
german_normalization | (typ gäller endast när alternativ är tillgängliga) | Normaliserar tyska tecken enligt heuristiken i german2 snowball-algoritmen . |
hindi_normalization | (typ gäller endast när alternativ är tillgängliga) | 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. |
behålla | KeepTokenFilter | Ett tokenfilter som bara behåller token med text i en angiven lista med ord. Alternativ keepWords (typ: strängmatris) – En lista med ord att behålla. Standardvärdet är en tom lista. Obligatoriskt. keepWordsCase (typ: bool) – Om sant, gemener alla ord först. Standardvärdet är falskt. |
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. Obligatoriskt. ignoreCase (typ: bool) – Om sant, gemener alla ord först. Standardvärdet är falskt. |
keyword_repeat | (typ gäller endast när alternativ är tillgängliga) | Genererar varje inkommande token två gånger en gång som nyckelord och en gång som icke-nyckelord. |
kstem | (typ gäller endast när alternativ är tillgängliga) | 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. Standardvärdet är 1. consumeAllTokens (typ: bool) – Om alla token från indata måste förbrukas även om maxTokenCount har nåtts. Standardvärdet är falskt. |
gemen | (typ gäller endast när alternativ är tillgängliga) | Normaliserar tokentext till gemener. |
nGram_v2 | NGramTokenFilterV2 | Genererar 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. |
pattern_capture | PatternCaptureTokenFilter | Använder Java-regexer för att generera flera token, en för varje insamlingsgrupp i ett eller flera mönster. Alternativ mönster (typ: strängmatris) – En lista med mönster som ska matchas mot varje token. Obligatoriskt. preserveOriginal (typ: bool) – Ställ in på true för att returnera den ursprungliga token även om ett 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 mönster (typ: sträng) – Obligatoriskt. ersättning (typ: sträng) – Krävs. |
persian_normalization | (typ gäller endast när alternativ är tillgängliga) | Tillämpar normalisering för persiska. |
fonetisk | PhoneticTokenFilter | Skapa token för fonetiska matchningar. Alternativ kodare (typ: sträng) – Fonetikkodare att använda. Tillåtna värden är: metaphone , doubleMetaphone , soundex , refinedSoundex , caverphone1 , caverphone2 , cologne , nysiis , koelnerPhonetik , haasePhonetik , beiderMorse . Standard: metaphone . Standardvärdet är metafon.Mer information finns i kodaren . replace (type: bool) – True if encoded tokens should replace original tokens, false if they should be added as synonyms. Standardvärdet är sant. |
porter_stem | (typ gäller endast när alternativ är tillgängliga) | Transformerar tokenströmmen enligt Porter-algoritmen. |
omvänd | (typ gäller endast när alternativ är tillgängliga) | Återställer tokensträngen. |
scandinavian_normalization | (typ gäller endast när alternativ är tillgängliga) | Normaliserar användningen av utbytbara skandinaviska tecken. |
scandinavian_folding | (typ gäller endast när alternativ är tillgängliga) | Viker skandinaviska tecken åÅäæÄÆ till a och öÖøØ till o . Det diskriminerar också användningen av dubbla vokaler aa , ae , ao och oe , lämnar oo bara 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 sant. 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 falskt. tokenSeparator (typ: sträng) – Strängen som ska användas när du ansluter intilliggande token för att bilda en bältros. Standardvärdet är ett enda tomt utrymme . 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 | Filter för snöbollstoken. Alternativ language (type: string) – Tillåtna värden är: armenian , basque , catalan , danish , dutch , english , finnish , german french , , german2 , hungarian , kp lovins porter norwegian italian , portuguese , romanian , russian , spanish , , , swedish turkish |
sorani_normalization | SoraniNormalizationTokenFilter | Normaliserar Unicode-representationen av Sorani text.Alternativ Inga. |
Stemmer | StemmerTokenFilter | Språkspecifikt härdningsfilter. Alternativ language (type: string) – Tillåtna värden är: - 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 | Ordliste-Stemmed-termer markeras som nyckelord, vilket förhindrar att kedjan härleds. Måste placeras före eventuella härdningsfilter. Alternativ regler (typ: strängmatris) – Härstamningsregler i följande format word => stem , till exempel ran => run . Standardvärdet är en tom lista. Obligatoriskt. |
stopwords | StopwordsTokenFilter | Tar bort stoppord från en tokenström. Som standard använder filtret 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 över stoppord. Det går inte att ange om stopwords det har angetts. Tillåtna värden är:arabic , armenian , basque , brazilian , bulgarian , catalan , czech , danish , dutch , finnish english , french , galician , german greek hindi indonesian hungarian , irish , italian , norwegian persian romanian sorani russian portuguese swedish latvian spanish , thai , , turkish standard: . english Det går inte att ange om stopwords det har angetts. ignoreCase (typ: bool) – Om sant är alla ord gemener först. Standardvärdet är falskt. removeTrailing (typ: bool) – Om det är sant ignorerar du den sista sökordet 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 för att ändra hur den här listan tolkas. ignoreCase (typ: bool) – Skiftlägesdelegeringar för matchning. Standardvärdet är falskt. expandera (typ: bool) – Om sant mappas 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 - Om falskt, följande lista: otroligt, otroligt, fantastiskt, fantastiskt motsvarar: otroligt, otroligt, fantastiskt, fantastiskt => otroligt. |
trimma | (typ gäller endast när alternativ ä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. Obligatoriskt. |
unik | UniqueTokenFilter | Filtrerar bort token med samma text som föregående token. Alternativ onlyOnSamePosition (typ: bool) – Om du har angetts tar dubbletter endast bort på samma position. Standardvärdet är sant. |
versal | (typ gäller endast när alternativ ä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) – Orsakar 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 falskt.catenateNumbers (typ: bool) – Orsakar maximala körningar av antal delar som ska catenated, till exempel 1-2 blir 12 . Standardvärdet är falskt.catenateAll (typ: bool) – Gör att alla underordsdelar kategoriseras, t.ex Azure-Search-1 . blir AzureSearch1 . Standardvärdet är falskt.splitOnCaseChange (typ: bool) – Om 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 falskt. splitOnNumerics (typ: bool) – Om sant, delar på tal, blir Azure 1 Search till exempel .Azure1Search Standardvärdet är sant.stemEnglishPossessive (typ: bool) – Orsaker till att 's avslutande 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ådana som ArabicNormalizationTokenFilter
faktiskt skulle anges som #Microsoft.Azure.Search.ArabicNormalizationTokenFilter
. Vi tog bort prefixet för att minska tabellens bredd, men kom ihåg att inkludera det i koden.