Condividi tramite


Aggiungere analizzatori personalizzati ai campi stringa in un indice Azure AI Search

Un analizzatore personalizzato è una combinazione definita dall'utente di un tokenizer, uno o più filtri di token e uno o più filtri di caratteri. Un analizzatore personalizzato viene specificato all'interno di un indice di ricerca; quindi, vi viene fatto riferimento in base al nome nelle definizioni di campo che richiedono un'analisi personalizzata. Un analizzatore personalizzato viene richiamato per ogni campo. Gli attributi nel campo determinano se vengano usati per l'indicizzazione, le query o entrambi.

In un analizzatore personalizzato, i filtri carattere preparano il testo di input prima che venga elaborato dal tokenizer (ad esempio, rimuovendo i commenti). Successivamente, il tokenizer suddivide il testo in token. Infine, i filtri dei token modificano i token generati dal tokenizer. Per concetti ed esempi, vedere Analizzatori in Azure AI Search.

Perché usare un analizzatore personalizzato?

Un analizzatore personalizzato consente di controllare il processo di conversione del testo in token indicizzabili e ricercabili consentendo di scegliere i tipi di analisi o di filtro da richiamare e l'ordine in cui si verificano.

Creare e assegnare un analizzatore personalizzato se nessuno degli analizzatori predefiniti (Standard Lucence), integrati o del linguaggio sono sufficienti per le proprie esigenze. È anche possibile creare un analizzatore personalizzato se si vuole usare un analizzatore predefinito con opzioni personalizzate. Ad esempio, se si vuole modificare maxTokenLength in Standard, è necessario creare un analizzatore personalizzato con un nome definito dall'utente per impostare tale opzione.

Gli scenari in cui gli analizzatori personalizzati possono essere utili includono:

  • L'uso di filtri di caratteri per rimuovere commenti HTML prima che gli input di testo vengano tokenizzati o per sostituire determinati caratteri o simboli.

  • Ricerca fonetica. Aggiungere un filtro fonetico per abilitare la ricerca basata sul suono e sulla compitazione di una parola.

  • Disabilitare l'analisi lessicale. Usare l'analizzatore Keyword per creare campi ricercabili che non vengono analizzati.

  • Ricerca rapida di prefissi/suffissi. Aggiungere il filtro di token di n-grammi di Edge per indicizzare i prefissi delle parole per poter abilitare la corrispondenza rapida dei prefissi. Combinarlo con il filtro di token Reverse per eseguire la corrispondenza dei suffissi.

  • Tokenizzazione personalizzata. Usare, ad esempio, il tokenizer Whitespace per suddividere le frasi in token usando lo spazio vuoto come delimitatore

  • ASCII folding. Aggiungere il filtro ASCII Folding Standard per normalizzare i segni diacritici come ö o ê nei termini di ricerca.

Nota

Gli analizzatori personalizzati non sono esposti nel portale di Azure. L'unico modo per aggiungere un analizzatore personalizzato consiste nell’usare codice che definisce un indice.

Creare un analizzatore personalizzato

Per creare un analizzatore personalizzato, specificarlo nella sezione analyzers di un indice in fase di progettazione e quindi farvi riferimento sui campi ricercabili Edm.String usando la proprietà analyzer oppure la coppia indexAnalyzer e searchAnalyzer.

La definizione di un analizzatore include un nome, un tipo, uno o più filtri di caratteri, un massimo di un tokenizer e uno o più filtri di token per l'elaborazione post tokenizzazione. I filtri di caratteri vengono applicati prima della tokenizzazione. I filtri di token e i filtri di caratteri vengono applicati da sinistra a destra.

  • I nomi in un analizzatore personalizzato devono essere univoci e non possono essere uguali a quelli di altri analizzatori, tokenizer, filtri di token o filtri di caratteri integrati. Può contenere solo lettere, numeri, spazi, trattini o caratteri di sottolineatura, deve iniziare e terminare con caratteri alfanumerici e non può contenere più di 128 caratteri.

  • Il tipo deve essere #Microsoft.Azure.Search.CustomAnalyzer.

  • charFilters può essere uno o più filtri da Filtri di caratteri, elaborati prima della tokenizzazione, nell'ordine specificato. Alcuni filtri di caratteri hanno opzioni che possono essere impostate in una sezione charFilters. I filtri di carattere sono facoltativi.

  • tokenizer è esattamente un tokenizer. È necessario un valore. Se è necessario più di un tokenizer, è possibile creare più analizzatori personalizzati e assegnarli a ogni singolo campo nello schema dell'indice.

  • tokenFilters può essere uno o più filtri da Filtri di token, elaborati dopo la tokenizzazione, nell'ordine specificato. Per filtri di token con opzioni, aggiungere una sezione tokenFilter per specificare la configurazione. I filtri di token sono facoltativi.

Gli analizzatori non devono produrre token più lunghi di 300 caratteri o l'indicizzazione avrà esito negativo. Per tagliare o escludere un token lungo, usare rispettivamente TruncateTokenFilter e LengthTokenFilter. Per informazioni di riferimento, vedere Filtri dei token.

"analyzers":(optional)[
   {
      "name":"name of analyzer",
      "@odata.type":"#Microsoft.Azure.Search.CustomAnalyzer",
      "charFilters":[
         "char_filter_name_1",
         "char_filter_name_2"
      ],
      "tokenizer":"tokenizer_name",
      "tokenFilters":[
         "token_filter_name_1",
         "token_filter_name_2"
      ]
   },
   {
      "name":"name of analyzer",
      "@odata.type":"#analyzer_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"charFilters":(optional)[
   {
      "name":"char_filter_name",
      "@odata.type":"#char_filter_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"tokenizers":(optional)[
   {
      "name":"tokenizer_name",
      "@odata.type":"#tokenizer_type",
      "option1":value1,
      "option2":value2,
      ...
   }
],
"tokenFilters":(optional)[
   {
      "name":"token_filter_name",
      "@odata.type":"#token_filter_type",
      "option1":value1,
      "option2":value2,
      ...
   }
]

All'interno di una definizione di indice è possibile inserire questa sezione in un punto qualsiasi del corpo di una richiesta di creazione dell'indice, ma in genere viene inserita alla fine:

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

La definizione di un analizzatore è una parte dell'indice più grande. Le definizioni per filtri di caratteri, tokenizer e filtri di token vengono aggiunte all'indice solo se si stanno impostando opzioni personalizzate. Per usare un filtro o un tokenizer esistente così com'è, specificarlo per nome nella definizione dell'analizzatore. Per altre informazioni, vedere Creare un indice (REST). Per altri esempi, vedere Aggiungere analizzatori in Azure AI Search.

Testare gli analizzatori personalizzati

È possibile usare l'Analizzatore di test (REST) per vedere come un analizzatore suddivide in token un testo dato.

Richiedi

  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
      }
    ]
  }

Aggiornare gli analizzatori personalizzati

Dopo che un analizzatore, un tokenizer, un filtro di token o un filtro di carattere è stato definito, non può essere modificato. È possibile aggiungerne di nuovi a un indice esistente solo se il flag allowIndexDowntime è impostato su true nella richiesta di aggiornamento dell'indice:

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

Questa operazione porta l'indice offline almeno per alcuni secondi, causando la mancata riuscita dell'indicizzazione e delle richieste di query. Le prestazioni e la disponibilità alla scrittura dell'indice possono risultare inferiori per vari minuti dopo che l'indice è stato aggiornato o più a lungo per gli indici molto grandi, ma si tratta di effetti temporanei che alla fine si risolvono da soli.

Analizzatori integrati

Se si vuole usare un analizzatore integrato con opzioni personalizzate, la creazione di un analizzatore personalizzato è il metodo per specificare tali opzioni. Al contrario, per usare un analizzatore integrato così come è, è sufficiente farvi riferimento in base al nome nella definizione del campo.

analyzer_name analyzer_type 1 Descrizione e opzioni
keyword Il tipo si applica solo quando sono disponibili le opzioni Considera l'intero contenuto di un campo come token singolo. Ciò è utile per i dati come i codici postali, gli ID e alcuni nomi di prodotto.
pattern PatternAnalyzer Separa in modo flessibile il testo in termini tramite un modello di espressione regolare.

Opzioni

lowercase (tipo: booleano): determina se i termini sono in minuscolo. Il valore predefinito è true.

pattern (tipo: stringa): modello di espressione regolare a cui devono corrispondere i separatori di token. Il valore predefinito è \W+, che corrisponde a caratteri non alfanumerici.

flags (tipo: stringa): flag di espressione regolare. Il valore predefinito è una stringa vuota. Valori consentiti: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES

stopwords (tipo: matrice di stringhe): elenco di parole non significative. Il valore predefinito è un elenco vuoto.
simple Il tipo si applica solo quando sono disponibili le opzioni Divide il testo in corrispondenza di elementi diversi da lettere e li converte in lettere minuscole.
standard
(denominato anche standard.lucene)
StandardAnalyzer Analizzatore Lucene Standard, costituito dal tokenizer, dal filtro di lettere minuscole e dal filtro di parole non significative standard.

Opzioni

maxTokenLength (tipo: int): lunghezza massima del token. Il valore predefinito è 255. I token con lunghezza superiore a quella massima vengono suddivisi. Lunghezza massima del token che può essere usata è di 300 caratteri.

stopwords (tipo: matrice di stringhe): elenco di parole non significative. Il valore predefinito è un elenco vuoto.
standardasciifolding.lucene Il tipo si applica solo quando sono disponibili le opzioni Analizzatore standard con filtro ASCII Folding Standard.
stop StopAnalyzer Suddivide il testo in corrispondenza di elementi diversi da lettere e applica i filtri di token di lettere minuscole e di parole non significative.

Opzioni

stopwords (tipo: matrice di stringhe): elenco di parole non significative. Il valore predefinito è un elenco per la lingua inglese.
whitespace Il tipo si applica solo quando sono disponibili le opzioni Analizzatore che usa il tokenizer whitespace. I token che contengono più di 255 caratteri vengono suddivisi.

1 I tipi di analizzatore sono sempre preceduti dal prefisso #Microsoft.Azure.Search nel codice, in modo che PatternAnalyzer venga effettivamente specificato come #Microsoft.Azure.Search.PatternAnalyzer. Per brevità, il prefisso è stato rimosso, ma è obbligatorio usarlo nel codice.

analyzer_type viene fornito solo per gli analizzatori che possono essere personalizzati. Se non esistono opzioni, come avviene con l'analizzatore keyword, non è associato nessun tipo #Microsoft.Azure.Search.

Filtri di caratteri

I filtri di caratteri aggiungono elaborazione prima che una stringa raggiunga il tokenizer.

Azure AI Search supporta i filtri di carattere nell'elenco seguente. Altre informazioni su ciascuno di essi sono disponibili nella guida di riferimento dell'API Lucene.

char_filter_name char_filter_type 1 Descrizione e opzioni
html_strip Il tipo si applica solo quando sono disponibili le opzioni Filtro di caratteri che cerca di rimuovere i costrutti HTML.
mapping MappingCharFilter Filtro di caratteri che applica i mapping definiti con l'opzione mappings. La corrispondenza è greedy. I criteri di ricerca più lunghi in un determinato punto hanno la precedenza. È consentita la sostituzione con una stringa vuota.

Opzioni

mappings (tipo: matrice di stringhe): elenco di mapping nel formato seguente: a=>b (tutte le occorrenze del carattere a vengono sostituite con il carattere b). Obbligatorio.
pattern_replace PatternReplaceCharFilter Filtro di caratteri che sostituisce i caratteri nella stringa di input. Usa un'espressione regolare per identificare le sequenze di caratteri da conservare e un criterio di sostituzione per identificare i caratteri da sostituire. Ad esempio, testo di input = aa bb aa bb, pattern = (aa)\\\s+(bb) sostituto = $1#$2, risultato = aa#bb aa#bb.

Opzioni

pattern (tipo: stringa): obbligatorio.

replacement (tipo: stringa): obbligatorio.

1 I tipi di filtro di carattere sono sempre preceduti dal prefisso #Microsoft.Azure.Search nel codice, in modo che MappingCharFilter verrebbe effettivamente specificato come #Microsoft.Azure.Search.MappingCharFilter. Il prefisso è stato rimosso per ridurre la larghezza della tabella, ma si ricordi di includerlo nel codice. Notare che char_filter_type viene fornito solo per filtri che possono essere personalizzati. Se non esistono opzioni, come avviene con l'analizzatore html_strip, non è associato nessun tipo #Microsoft.Azure.Search.

Tokenizer

Un tokenizer divide il testo continuo in una sequenza di token, ad esempio suddividendo una frase in parole o una parola in forme radice.

Azure AI Search supporta i tokenizer nell'elenco seguente. Altre informazioni su ciascuno di essi sono disponibili nella guida di riferimento dell'API Lucene.

tokenizer_name tokenizer_type 1 Descrizione e opzioni
classico ClassicTokenizer Tokenizer basato sulla grammatica adatto per l'elaborazione della maggior parte dei documenti in lingue Europae.

Opzioni

maxTokenLength (tipo: int): lunghezza massima del token. Impostazione predefinita: 255, massimo: 300. I token con lunghezza superiore a quella massima vengono suddivisi.
edgeNGram EdgeNGramTokenizer Suddivide in token l'input da un token perimetrale in n-grammi di determinate dimensioni.

Opzioni

minGram (tipo: int) - Valore predefinito: 1, massimo: 300.

maxGram (tipo: int) - Impostazione predefinita: 2, massimo: 300. Deve essere maggiore di minGram.

tokenChars (tipo: matrice di stringhe): classi di caratteri da conservare nei token. Valori consentiti:
letter, digit, whitespace, punctuation, symbol. Il valore predefinito è una matrice vuota, che mantiene tutti i caratteri.
keyword_v2 KeywordTokenizerV2 Genera l'intero input come token singolo.

Opzioni

maxTokenLength (tipo: int): lunghezza massima del token. Impostazione predefinita: 256, massimo: 300. I token con lunghezza superiore a quella massima vengono suddivisi.
letter Il tipo si applica solo quando sono disponibili le opzioni Divide il testo in corrispondenza di elementi diversi da lettere. I token che contengono più di 255 caratteri vengono suddivisi.
lowercase Il tipo si applica solo quando sono disponibili le opzioni Divide il testo in corrispondenza di elementi diversi da lettere e li converte in lettere minuscole. I token che contengono più di 255 caratteri vengono suddivisi.
microsoft_language_tokenizer MicrosoftLanguageTokenizer Divide il testo usando le regole specifiche della lingua.

Opzioni

maxTokenLength (tipo: int): lunghezza massima del token, impostazione predefinita: 255, massimo: 300. I token con lunghezza superiore a quella massima vengono suddivisi. I token con più di 300 caratteri vengono prima di tutto divisi in token di lunghezza pari a 300 caratteri e ognuno di tali token viene quindi diviso in base al set maxTokenLength.

isSearchTokenizer (tipo: booleano): impostarlo su true se usato come tokenizer di ricerca, impostarlo su false se usato come tokenizer di indicizzazione.

language (tipo: stringa): linguaggio da usare, impostazione predefinita english. I valori consentiti includono:
bangla, bulgarian, catalan, chineseSimplified, chineseTraditional, croatian, czech, danish, dutch, english, french, german, greek, gujarati, hindi, icelandic, indonesian, italian, japanese, kannada, korean, malay, malayalam, marathi, norwegianBokmaal, polish, portuguese, portugueseBrazilian, punjabi, romanian, russian, serbianCyrillic, serbianLatin, slovenian, spanish, swedish, tamil, telugu, thai, ukrainian, urdu, vietnamese
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Divide il testo usando le regole specifiche del linguaggio e riduce le parole alle forme di base Questo tokenizer esegue la lemmatizzazione.

Opzioni

maxTokenLength (tipo: int): lunghezza massima del token, impostazione predefinita: 255, massimo: 300. I token con lunghezza superiore a quella massima vengono suddivisi. I token con più di 300 caratteri vengono prima di tutto divisi in token di lunghezza pari a 300 caratteri e ognuno di tali token viene quindi diviso in base al set maxTokenLength.

isSearchTokenizer (tipo: booleano): impostarlo su true se usato come tokenizer di ricerca, impostarlo su false se usato come tokenizer di indicizzazione.

language (tipo: stringa): linguaggio da usare, impostazione predefinita english. I valori consentiti includono:
arabic, bangla, bulgarian, catalan, croatian, czech, danish, dutch, english, estonian, finnish, french, german, greek, gujarati, hebrew, hindi, hungarian, icelandic, indonesian, italian, kannada, latvian, lithuanian, malay, malayalam, marathi, norwegianBokmaal, polish, portuguese, portugueseBrazilian, punjabi, romanian, russian, serbianCyrillic, serbianLatin, slovak, slovenian, spanish, swedish, tamil, telugu, turkish, ukrainian, urdu
nGram NGramTokenizer Suddivide in token l'input in n-grammi di determinate dimensioni.

Opzioni

minGram (tipo: int) - Valore predefinito: 1, massimo: 300.

maxGram (tipo: int) - Impostazione predefinita: 2, massimo: 300. Deve essere maggiore di minGram.

tokenChars (tipo: matrice di stringhe): classi di caratteri da conservare nei token. Valori consentiti: letter, digit, whitespace, punctuation, symbol. Il valore predefinito è una matrice vuota, che mantiene tutti i caratteri.
path_hierarchy_v2 PathHierarchyTokenizerV2 Tokenizer per le gerarchie di tipo percorso. Opzioni

delimiter (tipo: stringa): valore predefinito: '/.

replacement (tipo: stringa): se impostato, sostituisce il carattere di delimitazione. Il valore predefinito corrisponde al valore del delimitatore.

maxTokenLength (tipo: int): lunghezza massima del token. Impostazione predefinita: 300, massimo: 300. I percorsi più lunghi rispetto a maxTokenLength vengono ignorati.

reverse (tipo: booleano): se true, genera il token in ordine inverso. Valore predefinito: false.

skip (tipo: booleano): token iniziali da ignorare. Il valore predefinito è 0.
pattern PatternTokenizer Il tokenizer usa i criteri di ricerca regex per costruire token distinti.

Opzioni

pattern (tipo: stringa): modello di espressione regolare a cui devono corrispondere i separatori di token. Il valore predefinito è \W+, che corrisponde a caratteri non alfanumerici.

flags (tipo: stringa): flag di espressione regolare. Il valore predefinito è una stringa vuota. Valori consentiti: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES

group (tipo: int): gruppo da estrarre nei token. Il valore predefinito è -1 (suddivisione).
standard_v2 StandardTokenizerV2 Suddivide il testo in base alle regole di segmentazione del testo Unicode.

Opzioni

maxTokenLength (tipo: int): lunghezza massima del token. Impostazione predefinita: 255, massimo: 300. I token con lunghezza superiore a quella massima vengono suddivisi.
uax_url_email UaxUrlEmailTokenizer Suddivide in token gli URL e gli indirizzi di posta elettronica come un unico token.

Opzioni

maxTokenLength (tipo: int): lunghezza massima del token. Impostazione predefinita: 255, massimo: 300. I token con lunghezza superiore a quella massima vengono suddivisi.
whitespace Il tipo si applica solo quando sono disponibili le opzioni Divide il testo in corrispondenza degli spazi vuoti. I token che contengono più di 255 caratteri vengono suddivisi.

1 I tipi di tokenizer sono sempre preceduti dal prefisso #Microsoft.Azure.Search nel codice, in modo che ClassicTokenizer venga effettivamente specificato come #Microsoft.Azure.Search.ClassicTokenizer. Il prefisso è stato rimosso per ridurre la larghezza della tabella, ma si ricordi di includerlo nel codice. Notare che tokenizer_type viene fornito solo per i tokenizer che possono essere personalizzati. Se non esistono opzioni, come avviene con il tokenizer letter, non è associato nessun tipo #Microsoft.Azure.Search.

Filtri di token

Un filtro di token viene usato per filtrare o modificare i token generati da un tokenizer. È possibile, ad esempio, specificare un filtro lowercase che converte tutti i caratteri in lettere minuscole. In un analizzatore personalizzato possono essere presenti più filtri di token. I filtri di token vengono eseguiti nello stesso ordine in cui sono elencati.

Nella tabella seguente i filtri di token che vengono implementati usando Apache Lucene sono collegati alla documentazione dell'API Lucene.

token_filter_name token_filter_type 1 Descrizione e opzioni
arabic_normalization Il tipo si applica solo quando sono disponibili le opzioni Filtro di token che applica il normalizzatore per la lingua araba per normalizzare l'ortografia.
apostrophe Il tipo si applica solo quando sono disponibili le opzioni Rimuove tutti i caratteri dopo un apostrofo (incluso l'apostrofo stesso).
asciifolding AsciiFoldingTokenFilter Converte caratteri Unicode alfabetici, numerici e simbolici non compresi nei primi 127 caratteri ASCII (blocco Unicode Basic Latin) negli equivalenti ASCII, se esistenti.

Opzioni

preserveOriginal (tipo: booleano): se true, il token originale viene conservato. L'impostazione predefinita è false.
cjk_bigram CjkBigramTokenFilter Forma digrammi di termini CJK generati da StandardTokenizer.

Opzioni

ignoreScripts (tipo: matrice di stringhe): script da ignorare. I valori consentiti includono: han, hiragana, katakana, hangul. Il valore predefinito è un elenco vuoto.

outputUnigrams (tipo: booleano): impostarlo su true per visualizzare sempre sia gli unigrammi che i digrammi. L'impostazione predefinita è false.
cjk_width Il tipo si applica solo quando sono disponibili le opzioni Normalizza le differenze di larghezza per le lingue CJK. Riduce le varianti ASCII a larghezza intera a quelle equivalenti del latino di base e le varianti Katakana a metà larghezza a quelle kana equivalenti.
classico Il tipo si applica solo quando sono disponibili le opzioni Rimuove i possessivi dell'inglese e i punti dagli acronimi.
common_grams CommonGramTokenFilter Costruisce digrammi per i termini frequenti durante l'indicizzazione. Anche i termini singoli continuano a essere indicizzati, con i digrammi sovrapposti.

Opzioni

commonWords (tipo: matrice di stringhe): set di parole comuni. Il valore predefinito è un elenco vuoto. Obbligatorio.

ignoreCase (tipo: booleano): se true, la corrispondenza non fa distinzione tra maiuscole e minuscole. L'impostazione predefinita è false.

queryMode (tipo: booleano): genera i digrammi, quindi rimuove le parole comuni e i termini singoli seguiti da una parola comune. L'impostazione predefinita è false.
dictionary_decompounder DictionaryDecompounderTokenFilter Scompone le parole composte presenti in molte lingue germaniche.

Opzioni

wordList (tipo: matrice di stringhe): elenco di parole con cui eseguire il confronto. Il valore predefinito è un elenco vuoto. Obbligatorio.

minWordSize (tipo: int): verranno elaborate solo parole di lunghezza superiore a quella specificata. L'impostazione predefinita è 5.

minSubwordSize (tipo: int): verranno visualizzate solo sottoparole di lunghezza superiore a quella specificata. L'impostazione predefinita è 2.

maxSubwordSize (tipo: int): verranno visualizzate solo sottoparole di lunghezza inferiore a quella specificata. Il valore predefinito è 15.

onlyLongestMatch (tipo: booleano): aggiunge all'output solo la sottoparola con corrispondenza più lunga. L'impostazione predefinita è false.
edgeNGram_v2 EdgeNGramTokenFilterV2 Genera n-grammi delle dimensioni specificate a partire dall'inizio o dalla fine di un token di input.

Opzioni

minGram (tipo: int) - Valore predefinito: 1, massimo: 300.

maxGram (tipo: int) - Impostazione predefinita: 2, massimo 300. Deve essere maggiore di minGram.

side (tipo: stringa): specifica da quale lato dell'input deve essere generato l'n-gramma. Valori consentiti: front, back
elision ElisionTokenFilter Rimuove le elisioni. Ad esempio, l'avion (il piano) viene convertito in avion (piano).

Opzioni

articles (tipo: matrice di stringhe): set di articoli da rimuovere. Il valore predefinito è un elenco vuoto. Se non è impostato alcun elenco di articoli, tutti gli articoli del francese vengono rimossi per impostazione predefinita.
german_normalization Il tipo si applica solo quando sono disponibili le opzioni Normalizza i caratteri del tedesco in base all'euristica dell'algoritmo snowball German2 .
hindi_normalization Il tipo si applica solo quando sono disponibili le opzioni Normalizza il testo in hindi per rimuovere alcune differenze nelle varianti di ortografia.
indic_normalization IndicNormalizationTokenFilter Normalizza la rappresentazione Unicode del testo nelle lingue indiane.
keep KeepTokenFilter Filtro di token che mantiene solo i token con testo contenuto nell'elenco di parole specificato.

Opzioni

keepWords (tipo: matrice di stringhe): elenco di parole da mantenere. Il valore predefinito è un elenco vuoto. Obbligatorio.

keepWordsCase (tipo: booleano): se true, applica prima il minuscolo a tutte le parole. L'impostazione predefinita è false.
keyword_marker KeywordMarkerTokenFilter Contrassegna i termini come parole chiave.

Opzioni

keywords (tipo: matrice di stringhe): elenco di parole da contrassegnare come parole chiave. Il valore predefinito è un elenco vuoto. Obbligatorio.

ignoreCase (tipo: booleano): se true, applica prima il minuscolo a tutte le parole. L'impostazione predefinita è false.
keyword_repeat Il tipo si applica solo quando sono disponibili le opzioni Genera due volte ogni token in ingresso, una volta come parola chiave e una come parola non chiave.
kstem Il tipo si applica solo quando sono disponibili le opzioni Filtro kstem ad alte prestazioni per l'inglese.
length LengthTokenFilter Rimuove le parole troppo lunghe o troppo corte.

Opzioni

min (tipo: int): numero minimo. Impostazione predefinita: 0, massimo: 300.

max (tipo: int): numero massimo. Impostazione predefinita: 300, massimo: 300.
limit Microsoft.Azure.Search.LimitTokenFilter Limita il numero di token durante l'indicizzazione.

Opzioni

maxTokenCount (tipo: int): numero massimo di token da generare. Il valore predefinito è 1.

consumeAllTokens (tipo: booleano): specifica se devono essere utilizzati tutti i token dell'input anche se viene raggiunto il valore maxTokenCount. L'impostazione predefinita è false.
lowercase Il tipo si applica solo quando sono disponibili le opzioni Normalizza il testo del token applicando il minuscolo.
nGram_v2 NGramTokenFilterV2 Genera n-grammi delle dimensioni specificate.

Opzioni

minGram (tipo: int) - Valore predefinito: 1, massimo: 300.

maxGram (tipo: int) - Impostazione predefinita: 2, massimo 300. Deve essere maggiore di minGram.
pattern_capture PatternCaptureTokenFilter Usa espressioni regolari Java per generare più token, uno per ogni gruppo Capture in uno o più criteri.

Opzioni

patterns (tipo: matrice di stringhe): elenco di criteri da confrontare con ogni token. Obbligatorio.

preserveOriginal (tipo: booleano): impostarlo su true per restituire il token originale anche se uno dei criteri corrisponde. Valore predefinito: true
pattern_replace PatternReplaceTokenFilter Filtro di token che applica un criterio a ogni token nel flusso, sostituendo le occorrenze della corrispondenza con la stringa di sostituzione specificata.

Opzioni

pattern (tipo: stringa): obbligatorio.

replacement (tipo: stringa): obbligatorio.
persian_normalization Il tipo si applica solo quando sono disponibili le opzioni Applica la normalizzazione per il persiano.
phonetic PhoneticTokenFilter Crea i token per le corrispondenze fonetiche.

Opzioni

encoder (tipo: stringa): codificatore fonetico da usare. I valori consentiti includono: metaphone, doubleMetaphone, soundex, refinedSoundex, caverphone1, caverphone2, cologne, nysiis, koelnerPhonetik, haasePhonetik, beiderMorse. Impostazione predefinita: metaphone. Il valore predefinito è metaphone.

Per altre informazioni, vedere encoder.

replace (tipo: booleano): true se i token codificati devono sostituire i token originali, false se devono essere aggiunti come sinonimi. Il valore predefinito è true.
porter_stem Il tipo si applica solo quando sono disponibili le opzioni Trasforma il flusso di token in base all'algoritmo di stemming Porter.
ordinamento inverso Il tipo si applica solo quando sono disponibili le opzioni Inverte la stringa del token.
scandinavian_normalization Il tipo si applica solo quando sono disponibili le opzioni Normalizza l'uso dei caratteri scandinavi intercambiabili.
scandinavian_folding Il tipo si applica solo quando sono disponibili le opzioni Piega i caratteri scandinavi åÅäæÄÆ in a e öÖøØ in o. Inoltre, discrimina l'uso di vocali doppie aa, ae, ao, oe e oo, lasciando solo la prima.
shingle ShingleTokenFilter Crea combinazioni di token come token singolo.

Opzioni

maxShingleSize (tipo: int): il valore predefinito è 2.

minShingleSize (tipo: int): il valore predefinito è 2.

outputUnigrams (tipo: booleano): se true, il flusso di output contiene i token di input (unigrammi), oltre agli n-grammi. Il valore predefinito è true.

outputUnigramsIfNoShingles (tipo: booleano): se true, esegue l'override del comportamento outputUnigrams==false quando non sono disponibili n-grammi. L'impostazione predefinita è false.

tokenSeparator (tipo: stringa): stringa da usare quando si uniscono token adiacenti per formare un n-gramma. Il valore predefinito è un singolo spazio vuoto .

filterToken (tipo: stringa): stringa da inserire per ogni posizione per cui non sono presenti token. Il valore predefinito è _.
snowball SnowballTokenFilter Filtro di token Snowball.

Opzioni

language (tipo: stringa): i valori consentiti includono: armenian, basque, catalan, danish, dutch, english, finnish, french, german, german2, hungarian, italian, kp, lovins, norwegian, porter, portuguese, romanian, russian, spanish, swedish, turkish
sorani_normalization SoraniNormalizationTokenFilter Normalizza la rappresentazione Unicode del testo Sorani.

Opzioni

Nessuno.
stemmer StemmerTokenFilter Filtro di stemming specifico della lingua.

Opzioni

language (tipo: stringa): i valori consentiti includono:
- 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 I termini di stemming del dizionario vengono contrassegnati come parole chiave, impedendo lo stemming verso il basso della catena. Da inserire prima dei filtri di stemming.

Opzioni

rules (tipo: matrice di stringhe): regole di stemming nel formato seguente word => stem, ad esempio ran => run. Il valore predefinito è un elenco vuoto. Obbligatorio.
stopwords StopwordsTokenFilter Rimuove le parole non significative da un flusso di token. Per impostazione predefinita, il filtro usa un elenco di parole non significative predefinite per la lingua inglese.

Opzioni

stopwords (tipo: matrice di stringhe): elenco di parole non significative. Non può essere specificato se stopwordsList è specificato.

stopwordsList (tipo: stringa): elenco predefinito di parole non significative. Non può essere specificato se stopwords è specificato. I valori consentiti includono:arabic, armenian, basque, brazilian, bulgarian, catalan, czech, danish, dutch, english, finnish, french, galician, german, greek, hindi, hungarian, indonesian, irish, italian, latvian, norwegian, persian, portuguese, romanian, russian, sorani, spanish, swedish, thai, turkish, impostazione predefinita: english. Non può essere specificato se stopwords è specificato.

ignoreCase (tipo: booleano): se true, viene applicato prima il minuscolo a tutte le parole. L'impostazione predefinita è false.

removeTrailing (tipo: booleano): se true, ignora l'ultimo termine di ricerca se è una parola non significativa. Il valore predefinito è true.
synonym SynonymTokenFilter Trova i sinonimi corrispondenti costituiti da una o più parole in un flusso di token.

Opzioni

synonyms (tipo: matrice di stringhe): obbligatorio. Elenco di sinonimi in uno dei due formati seguenti:

-incredible, unbelievable, fabulous => amazing: tutti i termini a sinistra del simbolo => vengono sostituiti con tutti i termini alla sua destra.

-incredible, unbelievable, fabulous, amazing: elenco di parole equivalenti separate da virgole. Impostare l'opzione expand per modificare la modalità di interpretazione di questo elenco.

ignoreCase (tipo: booleano): riduce le lettere maiuscole dell'input per la corrispondenza. L'impostazione predefinita è false.

expand (tipo: booleano): se true, tutte le parole nell'elenco di sinonimi (se la notazione => non viene usata) eseguono il mapping l’una all’altra.
L'elenco seguente: incredible, unbelievable, fabulous, amazing equivale a: incredible, unbelievable, fabulous, amazing => incredible, unbelievable, fabulous, amazing

- Se false, l'elenco seguente: incredible, unbelievable, fabulous, amazing equivale a: incredible, unbelievable, fabulous, amazing => incredible.
Trim Il tipo si applica solo quando sono disponibili le opzioni Elimina lo spazio vuoto iniziale e finale dai token.
truncate TruncateTokenFilter Tronca i termini a una lunghezza specifica.

Opzioni

length (tipo: int) - Impostazione predefinita: 300, massimo: 300. Obbligatorio.
unique UniqueTokenFilter Filtra i token con lo stesso testo del token precedente.

Opzioni

onlyOnSamePosition (tipo: booleano): se impostato, rimuove i duplicati solo nella stessa posizione. Il valore predefinito è true.
uppercase Il tipo si applica solo quando sono disponibili le opzioni Normalizza il testo del token applicando il maiuscolo.
word_delimiter WordDelimiterTokenFilter Suddivide le parole in sottoparole ed esegue trasformazioni facoltative sui gruppi di sottoparole.

Opzioni

generateWordParts (tipo: booleano): causa la generazione di porzioni di parole, ad esempio AzureSearch diventa Azure Search. Il valore predefinito è true.

generateNumberParts (tipo: booleano): consente la generazione delle sottoparole numeriche. Il valore predefinito è true.

catenateWords (tipo: booleano): consente la concatenazione del numero massimo di porzioni parole, ad esempio Azure-Search diventa AzureSearch. L'impostazione predefinita è false.

catenateNumbers (tipo: booleano): consente la concatenazione del numero massimo di porzioni di un numero, ad esempio 1-2 diventa 12. L'impostazione predefinita è false.

catenateAll (tipo: booleano): fa in modo che tutte le parti di sottoparole vengano catenate, ad esempio Azure-Search-1 diventa AzureSearch1. L'impostazione predefinita è false.

splitOnCaseChange (tipo: booleano): se true, divide le parole su caseChange, ad esempio AzureSearch diventa Azure Search. Il valore predefinito è true.

preserveOriginal: le parole originali vengono mantenute e aggiunte all'elenco di sottoparole. L'impostazione predefinita è false.

splitOnNumerics (tipo: booleano): se true, divide i numeri, ad esempio Azure1Search diventa Azure 1 Search. Il valore predefinito è true.

stemEnglishPossessive (tipo: booleano): l'elemento 's finale viene rimosso per ogni sottoparola. Il valore predefinito è true.

protectedWords (tipo: matrice di stringhe): token di cui evitare la delimitazione. Il valore predefinito è un elenco vuoto.

1 I tipi di filtro di token sono sempre preceduti dal prefisso #Microsoft.Azure.Search nel codice, in modo che ArabicNormalizationTokenFilter verrebbe effettivamente specificato come #Microsoft.Azure.Search.ArabicNormalizationTokenFilter. Il prefisso è stato rimosso per ridurre la larghezza della tabella, ma si ricordi di includerlo nel codice.

Vedi anche