Adicionar analisadores personalizados a campos de cadeia de caracteres em um índice da IA do Azure Search
Um analisador personalizado é uma combinação definida pelo usuário de um indexador, um ou mais filtros de token e um ou mais filtros de caracteres. Um analisador personalizado é especificado em um índice de pesquisa e, em seguida, referenciado por nome nas definições de campo que exigem análise personalizada. Um analisador personalizado é invocado por campo. Os atributos no campo determinarão se ele é usado para indexação, consultas ou ambos.
Em um analisador personalizado, os filtros de caracteres preparam o texto de entrada antes de ser processado pelo gerador de token (por exemplo, removendo a marcação). Em seguida, o gerador de token divide o texto em tokens. Por fim, os filtros de token modificam os tokens emitidos pelo gerador de token. Para obter conceitos e exemplos, consulte Analisadores na IA do Azure Search.
Por que usar um analisador personalizado?
Um analisador personalizado oferece controle sobre o processo de conversão de texto em tokens indexáveis e pesquisáveis, permitindo que você escolha quais tipos de análise ou filtragem devem ser invocados e a ordem na qual ocorrem.
Crie e atribua um analisador personalizado se nenhum dos analisadores padrão (padrão Lucence), internos ou de linguagem forem suficientes para suas necessidades. Você também pode criar um analisador personalizado se quiser usar um analisador interno com opções personalizadas. Por exemplo, se desejasse alterar o maxTokenLength no padrão, você criaria um analisador personalizado, com um nome definido pelo usuário, para definir essa opção.
Os cenários em que os analisadores personalizados podem ser úteis incluem:
Usar filtros de caracteres para remover a marcação HTML antes que as entradas de texto sejam tokenizadas ou substituir determinados caracteres ou símbolos.
Pesquisa fonética. Adicione um filtro fonético para permitir a pesquisa com base no som de uma palavra, e não na ortografia.
Desabilitar análise léxica. Use o analisador de palavra-chave para criar campos de pesquisa que não são analisados.
Pesquisa rápida de prefixo/sufixo. Adicione o filtro de token Edge N-gram para indexar prefixos de palavras a fim de habilitar a correspondência rápida de prefixo. Combine-a com o filtro de token Inverso para realizar a correspondência de sufixo.
Criação de tokens personalizada. Por exemplo, use o criador de token Whitespace para dividir as frases em tokens usando o espaço em branco como um delimitador
Folding ASCII. Adicione o filtro Folding ASCII padrão para normalizar diacríticos como ö ou ê em termos de pesquisa.
Observação
Os analisadores personalizados não são expostos no portal do Azure. A única maneira de adicionar um analisador personalizado é por meio de um código que define um índice.
Criar um analisador personalizado
Para criar um analisador personalizado, especifique-o na seção analyzers
de um índice no tempo de design e, em seguida, referencie-o em campos Edm.String
pesquisáveis usando a propriedade analyzer
ou o par indexAnalyzer
e searchAnalyzer
.
Uma definição de analisador inclui um nome, um tipo, um ou mais filtros de caracteres, um máximo de um criador de token e um ou mais filtros de token para processamento de pós-criação de token. Os filtros de caracteres são aplicados antes da criação de token. Filtros de token e filtros de caracteres são aplicados da esquerda para a direita.
Os nomes em um analisador personalizado devem ser exclusivos e não podem ser iguais a nenhum dos analisadores, criadores de token, filtros de token ou filtros de caracteres internos. Deve conter apenas letras, números, espaços, traços ou sublinhados, pode começar e terminar apenas com caracteres alfanuméricos e está limitado a 128 caracteres.
O tipo deve ser #Microsoft.Azure.Search.CustomAnalyzer.
charFilters
pode ser um ou mais filtros de Filtros de caracteres, processados antes de geração de tokens, na ordem fornecida. Alguns filtros de caracteres têm opções, que podem ser definidas em uma seçãocharFilters
. Os filtros de caracteres são opcionais.tokenizer
é exatamente um Gerador de token. É necessário um valor. Se precisar de mais de um criador de token, você pode criar vários analisadores personalizados e atribuí-los campo por campo em seu esquema de índice.tokenFilters
pode ser um ou mais filtros de Filtros de tokens, processados antes da geração de tokens, na ordem fornecida. Para filtros de tokens que têm opções, adicione uma seçãotokenFilter
para especificar a configuração. Os filtros de tokens são opcionais.
Os analisadores não devem produzir tokens com mais de 300 caracteres ou haverá falha na indexação. Para cortar ou excluir tokens longos, use TruncateTokenFilter e LengthTokenFilter, respectivamente. Veja Filtros de tokens para referência.
"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,
...
}
]
Dentro de uma definição de índice, você pode colocar essa seção em qualquer lugar no corpo de uma solicitação de criação de índice, mas geralmente ela ocorre no final:
{
"name": "name_of_index",
"fields": [ ],
"suggesters": [ ],
"scoringProfiles": [ ],
"defaultScoringProfile": (optional) "...",
"corsOptions": (optional) { },
"analyzers":(optional)[ ],
"charFilters":(optional)[ ],
"tokenizers":(optional)[ ],
"tokenFilters":(optional)[ ]
}
A definição do analisador é uma parte do índice maior. As definições para filtros de caracteres, criadores de token e filtros de token serão adicionadas ao índice somente se você estiver definindo opções personalizadas. Para usar um filtro ou criador de token existente no estado em que ele se encontra, especifique-o por nome na definição do analisador. Para obter mais informações, veja Criar índice (REST). Para obter mais exemplos, consulte Adicionar analisadores na IA do Azure Search.
Testar analisadores personalizados
Você pode usar o Analisador de teste (REST) para ver como um analisador divide o texto em tokens.
Solicitação
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
}
]
}
Atualizar analisadores personalizados
Depois que um analisador, um criador de token, um filtro de token ou um filtro de caractere é definido, ele não pode ser modificado. Outros novos poderão ser adicionados a um índice existente apenas se o sinalizador allowIndexDowntime
estiver definido como true na solicitação de atualização de índice:
PUT https://[search service name].search.windows.net/indexes/[index name]?api-version=[api-version]&allowIndexDowntime=true
Essa operação deixa seu índice offline por pelo menos alguns segundos, fazendo com que suas solicitações de indexação e de consulta falhem. O desempenho e a disponibilidade de gravação do índice podem ser prejudicados por vários minutos após o índice ser atualizado, ou por mais tempo em caso de índices muito grandes, mas esses efeitos são temporários e acabam se resolvendo sozinhos.
Analisadores internos
Se você quiser usar um analisador interno com opções personalizadas, a criação de um analisador personalizado é o mecanismo pelo qual você especifica essas opções. Por outro lado, para usar um analisador interno como está, basta fazer referência a ele pelo nome na definição de campo.
analyzer_name | analyzer_type 1 | Descrição e opções |
---|---|---|
Palavra-chave | (o tipo aplica-se somente quando há opções disponíveis) | Trata todo o conteúdo de um campo como um único token. É útil para dados como códigos postais, IDs e alguns nomes de produtos. |
pattern | PatternAnalyzer | Separa texto em termos de forma flexível por meio de um padrão de expressão regular. Opções lowercase (tipo: bool) — determina se os termos estão em minúscula. O padrão é true. pattern (tipo: cadeia de caracteres) – Um padrão de expressão regular para corresponder aos separadores de token. O padrão é \W+ , que corresponde a caracteres que não são palavras. flags (tipo: cadeia de caracteres) – Sinalizadores de expressão regular. O padrão é uma cadeia de caracteres vazia. Os valores permitidos são: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES stopwords (tipo: matriz de cadeia de caracteres) – Uma lista de palavras irrelevantes. O padrão é uma lista vazia. |
simpless | (o tipo aplica-se somente quando há opções disponíveis) | Divide o texto em não letras e converte em minúsculas. |
padrão (Também conhecido como standard.lucene) |
StandardAnalyzer | Analisador padrão Lucene, composto pelo criador de token padrão, filtro de letras minúsculas e interrupção de filtro. Opções maxTokenLength (tipo: int) – O comprimento máximo do token. O padrão é 255. Tokens maiores do que o tamanho máximo são divididos. O comprimento máximo do token que pode ser usado é de 300 caracteres. stopwords (tipo: matriz de cadeia de caracteres) – Uma lista de palavras irrelevantes. O padrão é uma lista vazia. |
standardasciifolding.Lucene | (o tipo aplica-se somente quando há opções disponíveis) | Analisador padrão com Filtro Ascii. |
stop | StopAnalyzer | Divide o texto em não letras, aplica os filtros de token em minúsculas e de palavras irrelevantes. Opções stopwords (tipo: matriz de cadeia de caracteres) – Uma lista de palavras irrelevantes. O padrão é uma lista predefinida para Inglês. |
whitespace | (o tipo aplica-se somente quando há opções disponíveis) | Um analisador que usa o criador de token whitespace. Os tokens com mais de 255 caracteres são divididos. |
1 Tipos do Analisador sempre são prefixados no código com #Microsoft.Azure.Search
de modo que PatternAnalyzer
de fato seja especificado como #Microsoft.Azure.Search.PatternAnalyzer
. Removemos o prefixo para encurtar, mas ele é necessário em seu código.
O analyzer_type é fornecido apenas para analisadores que podem ser personalizados. Se não há opções, como é o caso do analisador de palavras-chave, não há nenhum tipo associado do #Microsoft.Azure.Search.
Filtros de caractere
Filtros de caracteres adicionam processamento antes que uma cadeia de caracteres atinja o criador de token.
A IA do Azure Search dá suporte a filtros de caracteres na lista a seguir. Mais informações sobre cada uma podem ser encontradas na referência da API Lucene.
char_filter_name | char_filter_type 1 | Descrição e opções |
---|---|---|
html_strip | (o tipo aplica-se somente quando há opções disponíveis) | Um filtro de caracteres que tenta remover constructos de HTML. |
mapeamento | MappingCharFilter | Um filtro de caracteres que aplica mapeamentos definidos com a opção de mapeamentos. A correspondência é gananciosa (a correspondência de padrões mais longa em um determinado ponto vence). A substituição é permitida como a cadeia de caracteres vazia. Opções mappings (tipo: cadeia de caracteres) – uma lista de mapeamentos do seguinte formato: a=>b (todas as ocorrências do caractere a são substituídas pelo caractere b ). Obrigatório. |
pattern_replace | PatternReplaceCharFilter | Um filtro de caracteres que substitui os caracteres na cadeia de entrada. Ele usa uma expressão regular para identificar sequências de caracteres para preservar e um padrão de substituição para identificar caracteres para substituir. Por exemplo, input text = aa bb aa bb , pattern=(aa)\\\s+(bb) replacement=$1#$2 , result = aa#bb aa#bb . Opções pattern (tipo: cadeia de caracteres) — obrigatório. replacement (tipo: cadeia de caracteres) – Obrigatório. |
1 Tipos do filtro de char sempre são prefixados no código com #Microsoft.Azure.Search
de modo que MappingCharFilter
de fato seja especificado como #Microsoft.Azure.Search.MappingCharFilter
. Removemos o prefixo para reduzir a largura da tabela, mas lembre-se de incluí-lo em seu código. Observe que char_filter_type é fornecido apenas para filtros que podem ser personalizados. Se não ha opções, como é o caso de html_strip, não há nenhum tipo associado do #Microsoft.Azure.Search.
Criadores de token
Um criador de token divide o texto contínuo em uma sequência de tokens, assim como quebrar uma frase em palavras ou uma palavra em formas raiz.
A IA do Azure Search dá suporte aos geradores de token na lista a seguir. Mais informações sobre cada uma podem ser encontradas na referência da API Lucene.
tokenizer_name | tokenizer_type 1 | Descrição e opções |
---|---|---|
clássico | ClassicTokenizer | O criador de token baseado em gramática é adequado para processar a maioria dos documentos no idioma europeu. Opções maxTokenLength (tipo: int) – O comprimento máximo do token. Padrão: 255, Máximo: 300. Tokens maiores do que o tamanho máximo são divididos. |
edgeNGram | EdgeNGramTokenizer | Cria tokens para a entrada a partir de uma borda em n-gramas de determinados tamanhos. Opções minGram (tipo: int) – Padrão: 1, máximo: 300. maxGram (tipo: int) – Padrão: 2, máximo 300. Deve ser maior que minGram. tokenChars (tipo: matriz de cadeia de caracteres) – Classes de caracteres para manter nos tokens. Valores permitidos: letter , digit , whitespace , punctuation , symbol . O padrão é uma matriz vazia, mantém todos os caracteres. |
keyword_v2 | KeywordTokenizerV2 | Emite a entrada inteira como um único token. Opções maxTokenLength (tipo: int) – O comprimento máximo do token. Padrão: 256, máximo: 300. Tokens maiores do que o tamanho máximo são divididos. |
letter | (o tipo aplica-se somente quando há opções disponíveis) | Divide o texto em não letras. Os tokens com mais de 255 caracteres são divididos. |
lowercase | (o tipo aplica-se somente quando há opções disponíveis) | Divide o texto em não letras e converte em minúsculas. Os tokens com mais de 255 caracteres são divididos. |
microsoft_language_tokenizer | MicrosoftLanguageTokenizer | Divide o texto usando regras específicas de idioma. Opções maxTokenLength (tipo: int) — o comprimento máximo do token, padrão: 255, máximo: 300. Tokens maiores do que o tamanho máximo são divididos. Tokens mais longos que 300 caracteres são divididos em tokens de 300 caracteres, e estes são divididos de acordo com o maxTokenLength definido. isSearchTokenizer (tipo: booliano) – Defina como true se for usado como o criador de token de pesquisa ou defina como false se for usado como o criador de token de indexação. language (tipo: cadeia de caracteres) – idioma a ser usado, o padrão é english . Entre os valores permitidos estão: 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 o texto usando regras específicas de idioma e reduz palavras para seus formulários base. Esse gerador de token executa a lematização. Opções maxTokenLength (tipo: int) — o comprimento máximo do token, padrão: 255, máximo: 300. Tokens maiores do que o tamanho máximo são divididos. Tokens mais longos que 300 caracteres são divididos em tokens de 300 caracteres, e estes são divididos de acordo com o maxTokenLength definido. isSearchTokenizer (tipo: booliano) – Defina como true se for usado como o criador de token de pesquisa ou defina como false se for usado como o criador de token de indexação. language (tipo: cadeia de caracteres) – idioma a ser usado, o padrão é english . Entre os valores permitidos estão: 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 | Cria tokens de entrada em n-gramas de determinados tamanhos. Opções minGram (tipo: int) – Padrão: 1, máximo: 300. maxGram (tipo: int) – Padrão: 2, máximo 300. Deve ser maior que minGram. tokenChars (tipo: matriz de cadeia de caracteres) – Classes de caracteres para manter nos tokens. Valores permitidos: letter , digit , whitespace , punctuation , symbol . O padrão é uma matriz vazia, mantém todos os caracteres. |
path_hierarchy_v2 | PathHierarchyTokenizerV2 | Criador de token para hierarquias de caminho. Opções delimiter (tipo: cadeia de caracteres) — padrão: '/. replacement (tipo: cadeia de caracteres) – Se definido, substitui o caractere delimitador. Tem como padrão o mesmo valor do delimitador. maxTokenLength (tipo: int) – O comprimento máximo do token. Padrão: 300, máximo: 300. Caminhos mais longos que o maxTokenLength são ignorados. reverse (tipo: booliano) – Se for true, gera o token na ordem inversa. Padrão: falso. skip (tipo: booliano) – Tokens iniciais a ignorar. O padrão é 0. |
pattern | PatternTokenizer | Este criador de token usa a correspondência de padrões de regex para criar tokens distintos. Opções padrão (tipo: cadeia de caracteres) — padrão da expressão regular para corresponder separadores de token. O padrão é \W+ , que corresponde a caracteres que não são palavras. flags (tipo: cadeia de caracteres) – Sinalizadores de expressão regular. O padrão é uma cadeia de caracteres vazia. Os valores permitidos são: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES group (tipo: int) — qual grupo extrair em tokens. O padrão é -1 (divisão). |
standard_v2 | StandardTokenizerV2 | Quebra o texto seguindo as regras de Segmentação de Texto Unicode. Opções maxTokenLength (tipo: int) – O comprimento máximo do token. Padrão: 255, Máximo: 300. Tokens maiores do que o tamanho máximo são divididos. |
uax_url_email | UaxUrlEmailTokenizer | Cria tokens de urls e emails como um único token. Opções maxTokenLength (tipo: int) – O comprimento máximo do token. Padrão: 255, Máximo: 300. Tokens maiores do que o tamanho máximo são divididos. |
whitespace | (o tipo aplica-se somente quando há opções disponíveis) | Divide o texto em espaços em branco. Os tokens com mais de 255 caracteres são divididos. |
1 Tipos do gerador de token sempre são prefixados no código com #Microsoft.Azure.Search
de modo que ClassicTokenizer
de fato seja especificado como #Microsoft.Azure.Search.ClassicTokenizer
. Removemos o prefixo para reduzir a largura da tabela, mas lembre-se de incluí-lo em seu código. Observe que tokenizer_type é fornecido apenas para criadores de token que podem ser personalizados. Se não há opções, como é o caso do criador de token de letra, não há nenhum tipo associado do # Microsoft.Azure.Search.
Filtros de token
Um filtro de token é usado para filtrar ou modificar os tokens gerados por um criador de token. Por exemplo, você pode especificar um filtro de minúsculas que converte todos os caracteres em letras minúsculas. Você pode ter vários filtros de token em um analisador personalizado. Os filtros de token são executados na ordem em que estão listados.
Na tabela abaixo, os filtros de token que são implementados usando o Apache Lucene têm links para a documentação da API Lucene.
token_filter_name | token_filter_type 1 | Descrição e opções |
---|---|---|
arabic_normalization | (o tipo aplica-se somente quando há opções disponíveis) | Um filtro de token que aplica o normalizador em árabe para normalizar a ortografia. |
apostrophe | (o tipo aplica-se somente quando há opções disponíveis) | Remove todos os caracteres após um apóstrofo (incluindo o próprio apóstrofo). |
asciifolding | AsciiFoldingTokenFilter | Converte caracteres Unicode alfabéticos, numéricos e simbólicos que não estão nos primeiros 127 caracteres ASCII (o bloco Unicode Basic Latin ) em seus equivalentes ASCII, se existirem.Opções preserveOriginal (tipo: bool) — se true, o token original é mantido. O padrão é false. |
cjk_bigram | CjkBigramTokenFilter | Forma bigramas de termos CJK que são gerados a partir do StandardTokenizer. Opções ignoreScripts (tipo: matriz de cadeia de caracteres) – scripts a ignorar. Entre os valores permitidos estão: han , hiragana , katakana , hangul . O padrão é uma lista vazia.outputUnigrams (tipo: bool) — defina como true se você sempre quer gerar unigramas e bigramas. O padrão é false. |
cjk_width | (o tipo aplica-se somente quando há opções disponíveis) | Normaliza as diferenças de largura CJK. Transforma variantes ASCII de largura completa em variantes básicas equivalentes de latim e meia largura Katakana no kana equivalente. |
clássico | (o tipo aplica-se somente quando há opções disponíveis) | Remove os possessivos ingleses e os pontos das siglas. |
common_grams | CommonGramTokenFilter | Construa bigramas para termos que ocorrem com frequência durante a indexação. Termos únicos ainda são indexados também, com bigramas sobrepostos. Opções commonWords (tipo: matriz de cadeia de caracteres) — o conjunto de palavras comuns. O padrão é uma lista vazia. Obrigatório. ignoreCase (tipo: bool) — se true, a correspondência não diferencia maiúsculas e minúsculas. O padrão é false. queryMode (tipo: bool) — gera bigramas, em seguida, remove palavras comuns e termos simples seguidos por uma palavra comum. O padrão é false. |
dictionary_decompounder | DictionaryDecompounderTokenFilter | Decompõe palavras compostas encontradas em muitos idiomas germânicos. Opções wordList (tipo: cadeia de caracteres) — lista de palavras para correspondência. O padrão é uma lista vazia. Obrigatório. minWordSize (tipo: int) – apenas palavras mais longas que isso serão processadas. O padrão é 5. minSubwordSize (tipo: int) – apenas subpalavras maiores que isso serão geradas. O padrão é 2. maxSubwordSize (tipo: int) – apenas subpalavras mais curtas que isso serão geradas. O padrão é 15. onlyLongestMatch (tipo: bool) — adicione somente a maior correspondência de subpalavra para saída. O padrão é false. |
edgeNGram_v2 | EdgeNGramTokenFilterV2 | Gera n-gramas de determinados tamanhos começando do início ou do fim de um token de entrada. Opções minGram (tipo: int) – Padrão: 1, máximo: 300. maxGram (tipo: int) – Padrão: 2, máximo 300. Deve ser maior que minGram. side (tipo: cadeia de caracteres) — especifica de que lado da entrada o n-grama deve ser gerado. Valores permitidos: front e back |
elision | ElisionTokenFilter | Remove elisões. Por exemplo, l'avion (o plano) é convertido em avion (plano).Opções articles (tipo: matriz de cadeia de caracteres) — um conjunto de artigos a remover. O padrão é uma lista vazia. Se não houver uma lista de artigos definidos, por padrão, todos os artigos em francês serão removidos. |
german_normalization | (o tipo aplica-se somente quando há opções disponíveis) | Normaliza caracteres alemães de acordo com as heurísticas do algoritmo german2. |
hindi_normalization | (o tipo aplica-se somente quando há opções disponíveis) | Normaliza o texto em hindi para remover algumas diferenças nas variações ortográficas. |
indic_normalization | IndicNormalizationTokenFilter | Normaliza a representação Unicode do texto nos idiomas indianos. |
keep | KeepTokenFilter | Um filtro de token que mantém apenas tokens com texto contido na lista especificada de palavras. Opções keepWords (tipo: cadeia de caracteres) — uma lista de palavras a manter. O padrão é uma lista vazia. Obrigatório. keepWordsCase (tipo: bool) — se true, muda para minúsculas todas as palavras primeiro. O padrão é false. |
keyword_marker | KeywordMarkerTokenFilter | Marca termos como palavras-chave. Opções keywords (tipo: cadeia de caracteres) — uma lista de palavras para marcar como palavras-chave. O padrão é uma lista vazia. Obrigatório. ignoreCase (tipo: bool) — se true, muda para minúsculas todas as palavras primeiro. O padrão é false. |
keyword_repeat | (o tipo aplica-se somente quando há opções disponíveis) | Emite cada token de entrada duas vezes: uma vez como palavra-chave e uma vez como não palavra-chave. |
kstem | (o tipo aplica-se somente quando há opções disponíveis) | Um filtro kstem de alto desempenho para inglês. |
length | LengthTokenFilter | Remove palavras muito longas ou muito curtas. Opções min (tipo: int) — o número mínimo. Padrão: 0, máximo: 300. max (tipo: int) — o número máximo. Padrão: 300, máximo: 300. |
limite | Microsoft.Azure.Search.LimitTokenFilter | Limita o número de tokens durante a indexação. Opções maxTokenCount (tipo: int) — número máximo de tokens a produzir. O padrão é 1. consumeAllTokens (tipo: bool) — se todos os tokens da entrada devem ser consumidos, mesmo se maxTokenCount for atingido. O padrão é false. |
lowercase | (o tipo aplica-se somente quando há opções disponíveis) | Normaliza o texto do token para letras minúsculas. |
nGram_v2 | NGramTokenFilterV2 | Gera n-gramas de determinados tamanhos. Opções minGram (tipo: int) – Padrão: 1, máximo: 300. maxGram (tipo: int) – Padrão: 2, máximo 300. Deve ser maior que minGram. |
pattern_capture | PatternCaptureTokenFilter | Usa regexes Java para emitir vários tokens, um para cada grupo de captura em um ou mais padrões. Opções patterns (ttipo: cadeia de caracteres) — uma lista de padrões para combinar com cada token. Obrigatório. preserveOriginal (tipo: bool) — defina como true para retornar o token original, mesmo que um dos padrões corresponda, padrão: true |
pattern_replace | PatternReplaceTokenFilter | Um filtro de token que aplica um padrão a cada token no fluxo, substituindo as ocorrências de correspondência pela cadeia de caracteres de substituição especificada. Opções pattern (tipo: cadeia de caracteres) — obrigatório. replacement (tipo: cadeia de caracteres) – Obrigatório. |
persian_normalization | (o tipo aplica-se somente quando há opções disponíveis) | Aplica a normalização para persa. |
phonetic | PhoneticTokenFilter | Crie tokens para correspondências fonéticas. Opções encoder (tipo: cadeia de caracteres) — codificador fonético a ser usado. Entre os valores permitidos estão: metaphone , doubleMetaphone , soundex , refinedSoundex , caverphone1 , caverphone2 , cologne , nysiis , koelnerPhonetik , haasePhonetik , beiderMorse . Padrão: metaphone . O padrão é "metaphone".Confira encoder para obter mais informações. replace (tipo: bool) — true se os tokens codificados devem substituir os tokens originais, false se eles devem ser adicionados como sinônimos. O padrão é true. |
porter_stem | (o tipo aplica-se somente quando há opções disponíveis) | Transforma o fluxo de token conforme o Algoritmo de stemming de Porter. |
reverse | (o tipo aplica-se somente quando há opções disponíveis) | Inverte a cadeia de caracteres do token. |
scandinavian_normalization | (o tipo aplica-se somente quando há opções disponíveis) | Normaliza o uso de caracteres escandinavos intercambiáveis. |
scandinavian_folding | (o tipo aplica-se somente quando há opções disponíveis) | Dobra caracteres escandinavos åÅäæÄÆ em a e öÖøØ em o . Também discrimina o uso de vogais duplas aa , ae , ao , oe e oo , deixando apenas a primeira. |
shingle | ShingleTokenFilter | Cria combinações de tokens como um único token. Opções maxShingleSize (tipo: int) — o padrão é 2. minShingleSize (tipo: int) — o padrão é 2. outputUnigrams (tipo: bool) — se true, o fluxo de saída contém os tokens de entrada (unigramas), bem como shingles. O padrão é true. outputUnigramsIfNoShingles (tipo: bool) — se true, substitui o comportamento outputUnigrams==false para aqueles momentos em que não existem shingles disponíveis. O padrão é false. tokenSeparator (tipo: cadeia de caracteres) — a cadeia de caracteres a ser usada ao unir os tokens adjacentes para formar um shingle. O padrão é um espaço vazio único. filterToken (tipo: cadeia de caracteres) — a cadeia de caracteres a ser inserida para cada posição na qual não há token. O padrão é _ . |
snowball | SnowballTokenFilter | Filtro Snowball Token. Opções language (tipo: cadeia de caracteres) – entre os valores permitidos estão: 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 | Normaliza a representação Unicode de texto Sorani .Opções Nenhum. |
stemmer | StemmerTokenFilter | Filtro de lematização específica de idioma. Opções language (tipo: cadeia de caracteres) — entre os valores permitidos estão: - 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 | Quaisquer termos com base no dicionário são marcados como palavras-chave, o que evita a lematização da cadeia. Deve ser colocado antes de qualquer filtro de lematização. Opções rules (tipo: matriz de cadeia de caracteres) – Regras de lematização no seguinte formato word => stem por exemplo ran => run . O padrão é uma lista vazia. Obrigatório. |
palavras irrelevantes | StopwordsTokenFilter | Remove palavras irrelevantes de um fluxo de tokens. Por padrão, o filtro usa uma lista de palavras irrelevantes predefinida para inglês. Opções stopwords (tipo: matriz de cadeia de caracteres) – Uma lista de palavras irrelevantes. Não pode ser especificado se a opção stopwordsList for especificada. stopwordsList (tipo: matriz de cadeia de caracteres) — uma lista predefinida de palavras irrelevantes. Não será possível especificar se stopwords estiver especificado. Entre os valores permitidos estão: 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 , padrão: english . Não será possível especificar se stopwords estiver especificado. ignoreCase (tipo: bool) — se true, primeiro todas as palavras são alteradas para minúsculas. O padrão é false. removeTrailing (tipo: bool) — se true, ignora o último termo de pesquisa se for uma palavra irrelevante. O padrão é true. |
synonym | SynonymTokenFilter | Corresponde sinônimos de palavras simples ou múltiplas em um fluxo de token. Opções synonyms (tipo: cadeia de caracteres) — obrigatório. Lista de sinônimos em um dos dois formatos a seguir: –incrível, inacreditável, fabuloso => maravilhoso – todos os termos no lado esquerdo do símbolo => são substituídos por todos os termos do lado direito. -incrível, inacreditável, fabuloso, maravilhoso — uma lista separada por vírgulas de palavras equivalentes. Defina a opção de expansão para alterar como essa lista é interpretada. ignoreCase (tipo: bool) — entrada e maiúscula/minúscula para correspondência. O padrão é false. expand (tipo: booliano) – Se for true, todas as palavras na lista de sinônimos (se a notação => não for usada) serão mapeadas umas às outras. A seguinte lista: incrível, inacreditável, fabuloso, maravilhoso é equivalente a: incrível, inacreditável, fabuloso, maravilhoso => incrível, inacreditável, fabuloso, maravilhoso – Se for false, a seguinte lista: incrível, inacreditável, fabuloso, maravilhoso será equivalente a: incrível, inacreditável, fabuloso, maravilhoso => incrível. |
cortar | (o tipo aplica-se somente quando há opções disponíveis) | Corta o espaço em branco à esquerda e à direita de uma cadeia de tokens. |
truncar | TruncateTokenFilter | Trunca os termos em um comprimento específico. Opções comprimento (tipo: int) – Padrão: 300, máximo: 300. Obrigatório. |
unique | UniqueTokenFilter | Filtra os tokens com o mesmo texto como o token anterior. Opções onlyOnSamePosition (tipo: bool) — se definido, remova duplicatas apenas na mesma posição. O padrão é true. |
uppercase | (o tipo aplica-se somente quando há opções disponíveis) | Normaliza o texto do token para letras maiúsculas. |
word_delimiter | WordDelimiterTokenFilter | Divide as palavras em subpalavras e realiza transformações opcionais em grupos de subpalavras. Opções generateWordParts (tipo: bool) - Faz com que partes de palavras sejam geradas, por exemplo, AzureSearch se torna Azure Search . O padrão é true.generateNumberParts (tipo: bool) — faz com que subpalavras de números sejam geradas. O padrão é true. catenateWords (tipo: bool) – faz com que as execuções máximas de partes de palavra sejam unidas, por exemplo, Azure-Search se torna AzureSearch . O padrão é false.catenateNumbers (tipo: bool) – faz com que execuções máximas de número de blocos sejam unidas, por exemplo 1-2 se torna 12 . O padrão é false.catenateAll (tipo: bool) – faz com que todas as partes da subpalavra sejam unidas, por exemplo, Azure-Search-1 se torna AzureSearch1 . O padrão é false.splitOnCaseChange (tipo: bool) - Se verdadeiro, divide as palavras na caseChange, por exemplo, AzureSearch se torna Azure Search . O padrão é true.preserveOriginal — faz com que as palavras originais sejam preservadas e adicionadas à lista de subpalavras. O padrão é false. splitOnNumerics (tipo: bool) - Se verdadeiro, divide em números, por exemplo, Azure1Search se torna Azure 1 Search . O padrão é true.stemEnglishPossessive (tipo: bool) – faz com que o 's à direita seja removido em cada subpalavra. O padrão é true.protectedWords (tipo: cadeia de caracteres) — tokens a proteger contra a delimitação. O padrão é uma lista vazia. |
1 Tipos de filtro de token sempre são prefixados no código com #Microsoft.Azure.Search
de modo que ArabicNormalizationTokenFilter
de fato seja especificado como #Microsoft.Azure.Search.ArabicNormalizationTokenFilter
. Removemos o prefixo para reduzir a largura da tabela, mas lembre-se de incluí-lo em seu código.