Lägga till anpassade analysverktyg i strängfält i ett Azure Cognitive Search index

Ett anpassat analysverktyg är en användardefinierad kombination av tokeniserare, ett eller flera tokenfilter och ett eller flera teckenfilter som anges i sökindexet och som sedan refereras till fältdefinitioner som kräver anpassad analys. Tokeniseraren ansvarar för att dela upp text i token och tokenfiltren för att ändra token som genereras av tokenizer. Teckenfilter förbereder indatatexten innan den bearbetas av tokeniseraren. Begrepp och exempel finns i Analysverktyg i Azure Cognitive Search.

Ett anpassat analysverktyg ger dig kontroll över processen med 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 ett anpassat analysverktyg om inget standardvärde (Standard Lucence), inbyggda analysverktyg eller språkanalysverktyg är tillräckliga för dina behov. Du kan också skapa ett anpassat analysverktyg om du vill använda ett inbyggt analysverktyg med anpassade alternativ. Om du till exempel vill ändra maxTokenLength på Standard skapar du ett anpassat analysverktyg med ett användardefinierat namn för att ange det alternativet.

Här är några exempel på scenarier där anpassade analysverktyg kan vara till hjälp:

  • Använda teckenfilter för att ta bort HTML-kod innan textinmatningar tokeniseras eller ersätta vissa tecken eller symboler.

  • Fonetiska sökningar. Lägg till ett fonetiskt filter 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 efter prefix/suffix. Lägg till edge N-gram token-filtret till indexprefix för ord för att aktivera snabb prefixmatchning. Kombinera det med filtret Omvänd token för att göra suffixmatchning.

  • Anpassad tokenisering. Du kan till exempel använda tokeniseraren för tomt utrymme för att dela upp meningar i token med hjälp av 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 ett anpassat analysverktyg är via kod som definierar ett index.

Skapa ett anpassat analysverktyg

Om du vill skapa ett anpassat analysverktyg anger du det i avsnittet "analyzers" i ett index vid designtiden och refererar sedan till det på sökbara Edm.String-fält med antingen egenskapen "analyzer" eller paret "indexAnalyzer" och "searchAnalyzer".

En analysdefinition innehåller namn, typ, ett eller flera teckenfilter, högst en tokeniserare och ett eller flera tokenfilter för bearbetning efter tokenbearbetning. Teckenfilter tillämpas före tokenisering. Tokenfilter och teckenfilter tillämpas från vänster till höger.

  • Namnen i ett anpassat analysverktyg måste vara unika och får inte vara samma som inbyggda analysverktyg, tokeniserare, tokenfilter eller teckenfilter. Det får bara innehålla bokstäver, siffror, blanksteg, bindestreck eller understreck, får bara börja och sluta med alfanumeriska tecken och får vara begränsat till 128 tecken.

  • Typen måste vara #Microsoft.Azure.Search.CustomAnalyzer.

  • "charFilters" kan vara ett eller flera filter från teckenfiltersom 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 fler ä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 tokenfiltersom 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 skapa token som är längre än 300 tecken, annars misslyckas indexeringen. Om du vill trimma en lång token eller undanta dem använder du TruncateTokenFilter respektive LengthTokenFilter. Se Tokenfilter som 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 i slutet:

{
  "name": "name_of_index",
  "fields": [ ],
  "suggesters": [ ],
  "scoringProfiles": [ ],
  "defaultScoringProfile": (optional) "...",
  "corsOptions": (optional) { },
  "analyzers":(optional)[ ],
  "charFilters":(optional)[ ],
  "tokenizers":(optional)[ ],
  "tokenFilters":(optional)[ ]
}

Analysverktygsdefinitionen är en del av det större indexet. Definitioner för teckenfilter, tokeniserare och tokenfilter läggs bara till i indexet om du anger anpassade alternativ. Om du vill använda ett befintligt filter eller en tokeniserare som det är anger du det efter namn i analyzer-definitionen. 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 en analysator delar upp a given 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 flaggan allowIndexDowntime är inställd på sant i indexuppdateringsbegäran:

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

Den här åtgärden tar indexet offline i minst några sekunder, vilket gör att indexerings- och frågebegäranden misslyckas. Prestanda- och skrivtillgänglighet 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 ett inbyggt analysverktyg med anpassade alternativ kan du ange dessa alternativ genom att skapa ett anpassat analysverktyg. Om du däremot vill använda ett inbyggt analysverktyg som det är behöver du helt enkelt referera till det med namnet i fältdefinitionen.

analyzer_name analyzer_type 1 Beskrivning och alternativ
Sökord (typen 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:er och vissa produktnamn.
Mönster PatternAnalyzer Separerar texten flexibelt i termer via ett mönster för reguljära uttryck.

Alternativ

gemener (typ: bool) – Avgör om termerna är gemener. Standardvärdet är true.

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

stopwords (typ: strängmatris) – En lista med stoppord. Standardvärdet är en tom lista.
Enkel (typen gäller endast när alternativ är tillgängliga) Dividerar text med icke-bokstäver och konverterar dem till gemener.
standard
(Kallas även standard.lucene)
StandardAnalyzer Standard Lucene Analyzer, som består av standardtokeniseraren, filtret gemener och stoppfiltret.

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 (typen gäller endast när alternativ är tillgängliga) Standardanalysverktyg med Ascii-vikningsfilter.
Stanna StopAnalyzer Dividerar text med icke-bokstäver, tillämpar filtren gemener och stoppordstoken.

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) Ett analysverktyg som använder tokeniseraren för tomt utrymme. Token som är längre än 255 tecken delas upp.

1 Analyzer Types har alltid prefixet "#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 nyckelordsanalys, finns det ingen associerad #Microsoft.Azure.Search-typ.

Teckenfilter

Teckenfilter lägger till bearbetning innan en sträng når tokeniseraren.

Cognitive Search har stöd för 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 (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 given punkt vinner). Ersättning tillåts vara den tomma strängen.

Alternativ

mappings (type: string array) – En lista med 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 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

pattern (type: string) – Obligatoriskt.

replacement (type: string) – Obligatoriskt.

1 Teckenfiltertyper föregås alltid av prefix i 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 anges 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.

Tokeniserare

En tokeniserare delar in kontinuerlig text i en sekvens med token, till exempel att dela upp en mening i ord eller ett ord i rotformulär.

Cognitive Search har stöd för tokeniserare i följande lista. Mer information om var och en finns i Lucene API-referensen.

tokenizer_name tokenizer_type 1 Beskrivning och alternativ
klassiskt ClassicTokenizer Grammatikbaserad tokeniserare som är lämplig för bearbetning av de flesta europeiska språkdokument.

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 Skickar 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) Dividerar 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 token baserat på maxTokenLength-uppsättningen.

isSearchTokenizer (type: bool) – Ange till sant om det används som söktokeniserare, ställ in på falskt om det används som indexeringstokeniserare.

language (type: string) – Språk att använda, standard "english". Tillåtna värden är:
"mobla", "italian", "german", "chineseSimplified", "chineseStart", "czech", "tjeckiska", "danska", "nederländska", "english", "french", "german", "grekiska", "gujarati", "hindi", "germanic", "indonesian", "italian", "japanese", "kannada", "koreanska", "malajiska", "malayalam", "marathi", "norskaBokmaal", "polska", "portugisiska", "portugisiskaBrazilian", "punjabi", "rumänska", "ryska", "serbiskacyrillisk", "serbiskaLatin", "frise", "spanska", "svenska", "tamil", "telugu", "thailändska", " -, "urdu", "vietnamesiska"
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Delar upp text med språkspecifika regler och minskar ord till deras basformulär

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 token baserat på maxTokenLength-uppsättningen.

isSearchTokenizer (type: bool) – Ange till sant om det används som söktokeniserare, ställ in på falskt om det används som indexeringstokeniserare.

language (type: string) – Språk att använda, standard "english". Tillåtna värden är:
"arabiska", "lagan", "nederländska", "tjeckiska", "tjeckiska", "danska", "nederländska", "english", "bred", "finska", "franska", "german", "grekiska", "gujarati", "hebreiska", "hindi", "ungerska", "mojiska", "indonesian", "italian", "kannada", "lettiska", "hejdare", "malay", "malayalam", "marathi", "norskaBokmaal", "polska", "portugisiska", "portugisiskaBrazilian", "punjabi", "rumänska", "ryska", "serbiskacyrillisk", "serbiskaLatin", "slovakiska", "underskan", "spanska", "svenska", "tamil", " telugu", "turkish", "turkish", "urdu"
nGram NGramTokenizer Tokeniserar indata till n-gram för 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 Tokeniserare för sökvägsliknande hierarkier. Alternativ

avgränsare (typ: sträng) – Standard: '/.

replacement (type: string) – Ersätter avgränsartecknet om det har angetts. Standard samma som avgränsarvärdet.

maxTokenLength (typ: int) – Maximal tokenlängd. Standard: 300, max: 300. Sökvägar som är längre än maxTokenLength ignoreras.

reverse (type: bool) – Om sant genererar token i omvänd ordning. Standard: falskt.

skip (type: bool) – Inledande token som ska hoppas över. Standardvärdet är 0.
Mönster PatternTokenizer Den här tokeniseraren använder regex-mönstermatchning för att konstruera distinkta token.

Alternativ

pattern (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

group (type: int) – Vilken grupp som ska extraheras till token. Standardvärdet är -1 (split).
standard_v2 StandardTokenizerV2 Bryter text efter Reglerna för Unicode-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 (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 Types (Tokenizertyper) har alltid prefixet "#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 tokeniserare som kan anpassas. Om det inte finns några alternativ, vilket är fallet med tokenizer-bokstaven, 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 tokeniserare. 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 länkas tokenfilter som implementeras med Apache Lucene till Lucene API-dokumentationen.

token_filter_name token_filter_type 1 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 apostrofer (inklusive själva apostroferet).
asciifolding AsciiFoldingTokenFilter Konverterar alfabetiska, numeriska och symboliska Unicode-tecken som inte ingår i de första 127 ASCII-tecknen (Unicode-blocket "Basic Latin" ) till sina ASCII-motsvarigheter, om sådana finns.

Alternativ

preserveOriginal (type: bool) – Om det är sant behålls den ursprungliga token. Standardvärdet är False.
cjk_bigram CjkBigramTokenFilter Formar bigrams av CSTOPP-termer som genereras från StandardTokenizer.

Alternativ

ignoreScripts (type: string array) – Skript som ska ignoreras. Tillåtna värden är: "han", "hiragana", "katakana", "hangul". Standardvärdet är en tom lista.

outputUnigrams (type: 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 skillnaderna i CJK-bredd. Viker ASCII-varianter med full bredd till motsvarande grundläggande latinska och halva bredd Katakana-varianter till motsvarande kana.
klassiskt (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 termer som ofta förekommer vid indexering. Enskilda termer indexeras fortfarande också, med bigrams överlagrat.

Alternativ

commonWords (typ: strängmatris) – Uppsättningen vanliga ord. Standardvärdet är en tom lista. Krävs.

ignoreCase (type: bool) – Om det är sant är matchningen inte fallkänslig. Standardvärdet är False.

queryMode (typ: bool) – Genererar bigrams och tar sedan bort vanliga ord och enskilda termer följt av ett vanligt ord. Standardvärdet är False.
dictionary_decompounder DictionaryDecompounderTokenFilter Uppdelar sammansatta ord som finns på många tyska språk.

Alternativ

wordList (typ: strängmatris) – Listan med ord att matcha mot. Standardvärdet är en tom lista. Krävs.

minWordSize (type: int) – Endast ord som är längre än detta bearbetas. Standardvärdet är 5.

minSubwordSize (type: int) – Endast underord som är längre än detta matas ut. Standardvärdet är 2.

maxSubwordSize (type: int) – Endast underord som är kortare än detta matas ut. Standardvärdet är 15.

onlyLongestMatch (type: bool) – Lägg bara till det längst matchande underordet i utdata. Standardvärdet är False.
edgeNGram_v2 EdgeNGramTokenFilterV2 Genererar n-gram för den angivna storleken från början 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

articles (type: string array) – En uppsättning artiklar som ska tas bort. Standardvärdet är en tom lista. Om ingen lista över artiklar har angetts tas som standard alla franska artiklar bort.
german_normalization (typen gäller endast när det finns tillgängliga alternativ) Normaliserar tyska tecken enligt heuristiken i German2 snowball-algoritmen .
hindi_normalization (typen gäller endast när det finns tillgängliga alternativ) Normaliserar text i hindi för att ta bort vissa skillnader i stavningsvariationer.
indic_normalization IndicNormalizationTokenFilter Normaliserar Unicode-representationen av text på engelska.
Hålla KeepTokenFilter Ett tokenfilter som endast bevarar token med text som finns i en angiven lista med ord.

Alternativ

keepWords (typ: strängmatris) – En lista med ord som ska behållas. Standardvärdet är en tom lista. Krävs.

keepWordsCase (type: bool) – Om sant, gemener alla ord först. Standardvärdet är False.
keyword_marker KeywordMarkerTokenFilter Markerar termer som nyckelord.

Alternativ

keywords (type: string array) – En lista med ord som ska markeras som nyckelord. Standardvärdet är en tom lista. Krävs.

ignoreCase (type: 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) Sändar varje inkommande token två gånger som nyckelord och en gång som icke-nyckelord.
kstem (typen gäller endast när det finns tillgängliga alternativ) Ett kstem-filter med höga prestanda för engelska.
length LengthTokenFilter Tar bort ord som är för långa eller för korta.

Alternativ

min (typ: int) – Det lägsta talet. 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 produceras. Standard är 1.

consumeAllTokens (typ: bool) – Om alla token från indata måste användas även om maxTokenCount har uppnåtts. Standardvärdet är False.
Gemener (typen gäller endast när det finns tillgängliga alternativ) Normaliserar tokentexten till gemener.
nGram_v2 NGramTokenFilterV2 Genererar n-gram för 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-regexes för att generera flera token, en för varje avfångstgrupp i ett eller flera mönster.

Alternativ

patterns (type: string array) – En lista över mönster som ska matchas mot varje token. Krävs.

preserveOriginal (type: bool) – Ställ in på 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 dataströmmen och ersätter matchningshändelser med den angivna ersättningssträngen.

Alternativ

pattern (type: string) – Obligatoriskt.

replacement (type: string) – Obligatoriskt.
persian_normalization (typen gäller endast när alternativ är tillgängliga) Tillämpar normalisering för Försent.
Fonetiska PhoneticTokenFilter Skapa token för fonetiska matchningar.

Alternativ

kodare (typ: sträng) – Fonetiska kodare som ska användas. Tillåtna värden är: "metaphone", "doubleMetaphone", "soundex", "refinedIllaex", "caverphone1", "caverphone2", "caverphone2", "nysiis", "koelnerPhonetik", "haasePhonetik", "beiderMorse". Standard: "metaphone". Standardvärdet är metatelefon.

Mer information finns i kodaren.

replace (type: bool) – True om kodade token ska ersätta ursprungliga tokens, false om de ska läggas till som synonymer. Standardvärdet är true.
porter_stem (typen gäller endast när alternativ är tillgängliga) Transformerar tokenströmmen enligt Porter-algoritmen för igenkänning.
Omvänd (typen gäller endast när alternativ är tillgängliga) Omvänd tokensträng.
scandinavian_normalization (typen gäller endast när alternativ är tillgängliga) Normaliserar användningen av utbytbara Tecken.
scandinavian_folding (typen gäller endast när alternativ är tillgängliga) Vikning av tecken åÅåälÅÅ->a och öÖndi->o. Den skyddar också mot användning av dubbla vowels aa, ae, ao, oe och oo, och lämnar bara den första.
Singel GleTokenFilter Skapar kombinationer av token som en enda token.

Alternativ

maxShingleSize (type: int) – Standardvärdet är 2.

minShingleSize (type: int) – Standardvärdet är 2.

outputUnigrams (type: 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 tillfällen när inga binglingar är tillgängliga. Standardvärdet är False.

tokenSeparator (typ: sträng) – Strängen som ska användas när intilliggande token sammanförs för att bilda en växlingsflik. 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 Snowball-tokenfilter.

Alternativ

language (type: string) – Tillåtna värden är: "spanishn", "spanish", "german", "danish", "dutch", "english", "finska", "french", "german", "german2", "ungerska", "italian", "kp", "lodins", "norska", "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

språk (typ: sträng) – Tillåtna värden är:
- "arabiska"
- "100 000"
- "baskiska"
- "brasilien"
– "isk"
- "kant"
- "tjeckiska"
- "danska"
- "nederländska"
- "dutchKp"
- "english"
- "lightEnglish"
- "minimalEnglish"
- "possessiveEnglish"
- "porter2"
- "molins"
- "finska"
– "lightFinnish"
- "franska"
- "lightFrench"
- "minimalFrench"
– "galicisk"
– "minimalAllician"
- "tyska"
- "german2"
- "lightGerman"
– "minimalGerman"
- "grekiska"
– "hindi"
- "ungerska"
- "lightHung parentes"
- "indonesian"
- "puben"
- "italienska"
- "lightItalian"
- "sorani"
- "lettiska"
- "norska"
- "lightNorwegian"
- "minimalnorsk"
- "lightNynorsk"
- "minimalNynorsk"
- "portugisiska"
- "lightPortuguese"
- "minimalPortuguese"
- "portugueseRslp"
- "rumänska"
- "ryska"
- "lightRussian"
- "spanska"
- "lightSpanish"
- "svenska"
– "lightSwedish"
- "turkiska"
stemmer_override StemmerOverrideTokenFilter Ordlistor – stemmed-termer markeras som nyckelord, vilket förhindrar att de härstammar från kedjan. Måste placeras före eventuella ordstamsfilter.

Alternativ

rules (type: string array) – Ordstamsregler i följande format "word => stem" till exempel "ran => run". Standardvärdet är en tom lista. Krävs.
stopwords StopwordsTokenFilter Tar bort stoppord från en tokenström. Som standard använder filtret en fördefinierad stoppordslista för engelska.

Alternativ

stopwords (typ: strängmatris) – En lista med stoppord. Kan inte anges om en stopwordsList har angetts.

stopwordsList (type: string) – En fördefinierad lista med stoppord. Kan inte anges om stopwords har angetts. Tillåtna värden är:"arabiska", "intecknen", "baskiska", "brasilien", "tjeckiska", "tjeckiska", "tjeckiska", "danska", "nederländska", "english", "finska", "franska", "galician", "german", "grekiska", "hindi", "ungerska", "indonesian", "lettiska", "italienska", "lettiska", "norska", "inställningar", "portugisiska", "rumänska", "ryska", "sorani", "spanish", "svenska", "thailändska", "turkiska", standard: "english". Kan inte anges om stopwords har angetts.

ignoreCase (type: bool) – Om det är sant kommer alla ord att skrivas med gemener först. Standardvärdet är False.

removeTrailing (type: bool) – Om det är sant ignorerar du den senaste söktermen om det är ett stoppord. Standardvärdet är true.
Synonym SynonymTokenFilter Matchar synonymer med ett eller flera ord i en tokenström.

Alternativ

synonymer (typ: strängmatris) – Obligatoriskt. Lista över synonymer i något av följande två format:

-fantastisk, fantastisk, fantastisk => fantastisk – alla termer till vänster om => symbol ersätts med alla termer på höger sida.

–fantastisk, fantastisk, fantastisk – En kommaavgränsad lista med motsvarande ord. Ange alternativet expandera för att ändra hur listan tolkas.

ignoreCase (type: bool) – Indata för matchning av case-folds. Standardvärdet är False.

expand (type: bool) – Om sant mappar alla ord i listan över synonymer (if => notation inte används) till varandra.
Följande lista: fantastisk, fantastisk, fantastisk, motsvarar: fantastisk, fantastisk, fantastisk, fantastisk => fantastisk, fantastisk, fantastisk, fantastisk, fantastisk, fantastisk

– Om det är falskt är följande lista: fantastisk, fantastisk, fantastisk och fantastisk motsvarar: fantastisk, fantastisk, fantastisk, fantastisk => fantastisk.
Trimma (typen gäller endast när det finns tillgängliga alternativ) Rensar inledande och avslutande blanksteg från token.
Trunkera TruncateTokenFilter Trunkerar villkoren till en viss längd.

Alternativ

length (type: int) – Standard: 300, maximum: 300. Krävs.
Unik UniqueTokenFilter Filtrerar bort token med samma text som föregående token.

Alternativ

onlyOnSamePosition (typ: bool) – Om det här anges tar du bort dubbletter endast på samma plats. Standardvärdet är true.
Versaler (typen gäller endast när det finns tillgängliga alternativ) Normaliserar tokentext till versaler.
word_delimiter WordDelimiterTokenFilter Delar upp ord i underord och utför valfria transformeringar på underordsgrupper.

Alternativ

generateWordParts (type: bool) – Gör att delar av ord genereras, till exempel att "AzureSearch" blir "Azure" "Search". Standardvärdet är true.

generateNumberParts (typ: bool) – Orsakar att nummerunderord genereras. Standardvärdet är true.

catenateWords (typ: bool) – Orsakar maximala körningar av orddelar som ska catenated, till exempel blir "Azure-Search" "AzureSearch". Standardvärdet är False.

catenateNumbers (typ: bool) – Orsakar maximala körningar av antal delar som ska catenated, till exempel blir "1-2" "12". Standardvärdet är False.

catenateAll (typ: bool) – Orsakar att alla del av underordet är catenated, t.ex. att "Azure-Search-1" blir "AzureSearch1". Standardvärdet är False.

splitOnCaseChange (typ: bool) – Om det är sant delar ord i caseChange, till exempel blir "AzureSearch" "Azure" Search. Standardvärdet är true.

preserveOriginal – Gör att ursprungliga ord bevaras och läggs till i listan med underord. Standardvärdet är False.

splitOnNumerics (type: bool) – Om det är sant delas upp i tal, till exempel "Azure1Search" blir "Azure" "1" "Search". Standardvärdet är true.

stemEnglishPossessive (typ: bool) – Orsakar att avslutande "s" tas bort för varje underord. Standardvärdet är true.

protectedWords (typ: strängmatris) – Token som ska skyddas från att avgränsas. Standardvärdet är en tom lista.

1 Tokenfiltertyper föregås alltid av kod med "#Microsoft.Azure.Search" så att "ArabiskaNormalizationTokenFilter" faktiskt skulle anges som "#Microsoft.Azure.Search.ArabiskaNormalizationTokenFilter". Vi har tagit bort prefixet för att minska tabellens bredd, men kom ihåg att inkludera det i koden.

Se även