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 unacharFilters
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 unatokenFilter
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 a 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, 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 , polish romanian russian punjabi portugueseBrazilian portuguese serbianCyrillic english dutch french danish czech croatian chineseTraditional malayalam marathi norwegianBokmaal kannada thai korean telugu tamil german greek hindi indonesian italian gujarati japanese spanish slovenian serbianLatin malay swedish icelandic , , urdu ukrainian catalan vietnamese |
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 , , norwegianBokmaal finnish estonian german french greek gujarati hebrew hindi hungarian english indonesian icelandic italian portugueseBrazilian punjabi portuguese polish marathi romanian malayalam malay lithuanian russian latvian kannada dutch serbianCyrillic serbianLatin spanish slovenian swedish slovak tamil danish ukrainian catalan turkish croatian telugu czech bangla bulgarian 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) - 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 , whitespace digit , , 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 , doubleMetaphone soundex , refinedSoundex , caverphone1 , nysiis . koelnerPhonetik beiderMorse caverphone2 cologne haasePhonetik 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 aa doppie , , ae ao oe 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 , basque catalan , danish , dutch , , french swedish porter norwegian portuguese lovins romanian russian finnish german2 spanish german hungarian italian kp english turkish |
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 , basque armenian , catalan bulgarian brazilian , czech , danish spanish galician french german finnish english dutch greek hindi norwegian latvian persian italian portuguese irish romanian russian indonesian hungarian swedish thai sorani turkish predefinito: . 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 Azure Search . 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 Azure Search . 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 Azure 1 Search . 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.