Aggiungere analizzatori personalizzati ai campi stringa in un indice di Ricerca di intelligenza artificiale di Azure

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 e quindi 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 vengono 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 il markup). 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 Ricerca di intelligenza artificiale di Azure.

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 dei valori predefiniti (Standard Lucence), gli analizzatori predefiniti 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 il markup HTML prima che gli input di testo vengano tokenizzati o sostituisci 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 parole chiave 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 vengono esposti nella portale di Azure. L'unico modo per aggiungere un analizzatore personalizzato consiste nel codice che definisce un indice.

Creare un analizzatore personalizzato

Per creare un analizzatore personalizzato, specificarlo nella analyzers sezione di un indice in fase di progettazione e quindi farvi riferimento su ricercabile, Edm.String campi che usano la analyzer proprietà o la indexAnalyzer coppia e searchAnalyzer .

Una definizione dell'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 carattere vengono applicati prima della tokenizzazione. I filtri 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 qualsiasi analizzatore, tokenizer, filtri di token o filtri di caratteri predefiniti. 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 carattere, elaborati prima della tokenizzazione, nell'ordine specificato. Alcuni filtri di caratteri hanno opzioni che possono essere impostate in una charFilters sezione. I filtri 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 token, elaborati dopo la tokenizzazione, nell'ordine specificato. Per i filtri di token con opzioni, aggiungere una tokenFilter sezione per specificare la configurazione. I filtri dei token sono facoltativi.

Gli analizzatori non devono produrre token più lunghi di 300 caratteri o l'indicizzazione avrà esito negativo. Per tagliare un token lungo o escluderli, 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 char, tokenizer e filtri token vengono aggiunte all'indice solo se si impostano 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 Ricerca di intelligenza artificiale di Azure.

Testare gli analizzatori personalizzati

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

Richiesta

  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

Una volta definito un analizzatore, un tokenizer, un filtro token o un filtro di caratteri, 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 predefiniti

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

analyzer_name analyzer_type1 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, CA edizione Standard_INedizione Standard NSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CAedizione Standard, 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 nel codice con #Microsoft.Azure.Search tale che PatternAnalyzer verrebbe 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 sono disponibili opzioni, come accade con l'analizzatore di parole chiave, non esiste alcun tipo di #Microsoft.Azure.Search associato.

Filtri di caratteri

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

Ricerca di intelligenza artificiale di Azure supporta i filtri di caratteri nell'elenco seguente. Altre informazioni su ognuna sono disponibili nella guida di riferimento all'API Lucene.

char_filter_name char_filter_type1 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

mapping (tipo: matrice di stringhe): elenco di mapping del formato seguente: a=>b (tutte le occorrenze del carattere vengono sostituite con il carattere ab). 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, input text = aa bb aa bb, pattern=(aa)\\\s+(bb) replacement=$1#$2, result = aa#bb aa#bb.

Opzioni

pattern (tipo: stringa): obbligatorio.

replacement (tipo: stringa): obbligatorio.

1 I tipi di filtro char sono sempre preceduti dal prefisso nel codice, #Microsoft.Azure.Search 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. Si noti che char_filter_type viene fornito solo per i filtri che possono essere personalizzati. Se non sono disponibili opzioni, come nel caso di html_strip, non esiste alcun tipo di #Microsoft.Azure.Search associato.

Tokenizer

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

Ricerca di intelligenza artificiale di Azure supporta i tokenizer nell'elenco seguente. Altre informazioni su ognuna sono disponibili nella guida di riferimento all'API Lucene.

tokenizer_name tokenizer_type1 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) - Valore predefinito: 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. Valore predefinito: 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, valore predefinito: 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 (type: string) - Language to use, default english. I valori consentiti includono:
bangla, bulgarian, chineseSimplified, polishromanianrussianpunjabiportugueseBrazilianportugueseserbianCyrillicenglishdutchfrenchdanishczechcroatianchineseTraditionalmalayalammarathinorwegianBokmaalkannadathaikoreantelugutamilgermangreekhindiindonesianitaliangujaratijapanesespanishslovenianserbianLatinmalayswedishicelandic, , urduukrainiancatalanvietnamese
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Divide il testo usando regole specifiche della lingua e riduce le parole alle relative forme di base. Questo tokenizer esegue la lemmatizzazione.

Opzioni

maxTokenLength (tipo: int): lunghezza massima del token, valore predefinito: 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 (type: string) - Language to use, default english. I valori consentiti includono:
arabic, , norwegianBokmaalfinnishestoniangermanfrenchgreekgujaratihebrewhindihungarianenglishindonesianicelandicitalianportugueseBrazilianpunjabiportuguesepolishmarathiromanianmalayalammalaylithuanianrussianlatviankannadadutchserbianCyrillicserbianLatinspanishslovenianswedishslovaktamildanishukrainiancatalanturkishcroatianteluguczechbanglabulgarianurdu
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) - Valore predefinito: 2, massimo: 300. Deve essere maggiore di minGram.

tokenChars (tipo: matrice di stringhe): classi di caratteri da conservare nei token. Valori consentiti: letter, whitespacedigit, , 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): criterio di espressione regolare per trovare le corrispondenze con 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, CA edizione Standard_INedizione Standard NSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CAedizione Standard, 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 nel codice, #Microsoft.Azure.Search in modo da ClassicTokenizer specificare effettivamente come #Microsoft.Azure.Search.ClassicTokenizer. Il prefisso è stato rimosso per ridurre la larghezza della tabella, ma si ricordi di includerlo nel codice. Si noti che tokenizer_type viene fornito solo per i tokenizer che possono essere personalizzati. Se non sono disponibili opzioni, come nel caso del tokenizer di lettera, non esiste alcun tipo di #Microsoft.Azure.Search associato.

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 dei token vengono eseguiti nell'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_type1 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 che non si trovano nei primi 127 caratteri ASCII (blocco Basic Latin Unicode) nei rispettivi equivalenti ASCII, se presenti.

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): vengono elaborate solo parole più lunghe di quelle che verranno elaborate. L'impostazione predefinita è 5.

minSubwordSize (tipo: int): verranno restituite solo le parole secondarie più lunghe di quelle visualizzate. L'impostazione predefinita è 2.

maxSubwordSize (tipo: int): vengono restituite solo le parole secondarie più brevi rispetto a questa. 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) - Valore predefinito: 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, per impostazione predefinita vengono rimossi tutti gli articoli francesi.
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 ad alte prestazioni kstem per l'inglese.
length LengthTokenFilter Rimuove le parole troppo lunghe o troppo corte.

Opzioni

min (tipo: int): numero minimo. Valore predefinito: 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) - Valore predefinito: 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, doubleMetaphonesoundex, refinedSoundex, caverphone1, nysiis. koelnerPhonetikbeiderMorsecaverphone2colognehaasePhonetik 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 aadoppie , , aeaooe e oo, lasciando solo il primo.
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 è uno spazio vuoto singolo.

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

Opzioni

language (type: string): i valori consentiti includono: armenian, basquecatalan, danish, dutch, , frenchswedishporternorwegianportugueselovinsromanianrussianfinnishgerman2spanishgermanhungarianitaliankpenglishturkish
sorani_normalization SoraniNormalizationTokenFilter Normalizza la rappresentazione Unicode del Sorani testo.

Opzioni

Nessuno.
stemmer StemmerTokenFilter Filtro di stemming specifico della lingua.

Opzioni

language (type: string) - 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 word => stem seguente, 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 è possibile specificare se è specificato un elemento stopwordsList.

stopwordsList (tipo: stringa): elenco predefinito di parole non significative. Non è possibile specificare se stopwords è specificato. I valori consentiti includono:arabic, basquearmenian, catalanbulgarianbrazilian, czech, danishspanishgalicianfrenchgermanfinnishenglishdutchgreekhindinorwegianlatvianpersianitalianportugueseirishromanianrussianindonesianhungarianswedishthaisoraniturkishpredefinito: . english Non è possibile specificare 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:

-incredibile, incredibile, favoloso => incredibile - tutti i termini sul lato sinistro di => simbolo vengono sostituiti con tutti i termini sul lato destro.

-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: bool): se true, tutte le parole nell'elenco dei sinonimi (se => notazione non viene usata) eseguono il mapping tra loro.
L'elenco seguente: incredibile, incredibile, favoloso, incredibile, incredibile è equivalente a: incredibile, incredibile, incredibile> , incredibile,

- Se false, l'elenco seguente: incredibile, incredibile, favoloso, sorprendente sono equivalenti a: incredibile, incredibile, favoloso, incredibile => incredibile.
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 (type: int) - Valore predefinito: 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: bool): causa la generazione di parti di parole, ad esempio AzureSearch diventa AzureSearch. Il valore predefinito è true.

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

catenateWords (tipo: bool): fa sì che le esecuzioni massime delle parti di parola vengano catenate, ad esempio Azure-Search diventa AzureSearch. L'impostazione predefinita è false.

catenateNumbers (tipo: bool): causa la catenazione massima delle parti numeriche, ad esempio 1-2 diventa 12. L'impostazione predefinita è false.

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

splitOnCaseChange (tipo: bool): se true, divide le parole in caseChange, ad esempio AzureSearch diventa AzureSearch. Il valore predefinito è true.

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

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

stemEnglishPossessive (tipo: bool): causa la rimozione finale 's per ogni sottoword. 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 token sono sempre preceduti dal prefisso nel codice, #Microsoft.Azure.Search 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