Adicionar analisadores personalizados a campos de cadeia de caracteres em um índice do Azure AI Search

Um analisador personalizado é uma combinação definida pelo usuário de um tokenizador, um ou mais filtros de token e um ou mais filtros de caracteres. Um analisador personalizado é especificado dentro de um índice de pesquisa e, em seguida, referenciado pelo nome em 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 que ele seja processado pelo tokenizador (por exemplo, removendo a marcação). Em seguida, o tokenizador divide o texto em tokens. Finalmente, os filtros de token modificam os tokens emitidos pelo tokenizador. Para obter conceitos e exemplos, consulte Analisadores no Azure AI 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 invocar e a ordem em que eles ocorrem.

Crie e atribua um analisador personalizado se nenhum dos analisadores padrão (Standard Lucence), incorporados ou de idioma for suficiente para suas necessidades. Você também pode criar um analisador personalizado se quiser usar um analisador interno com opções personalizadas. Por exemplo, se você quisesse alterar o maxTokenLength no Standard, 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:

  • Usando 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 em como uma palavra soa, não como ela está escrita.

  • Desative a análise lexical. Use o Analisador de palavras-chave para criar campos pesquisáveis que não são analisados.

  • Pesquisa rápida de prefixos/sufixos. Adicione o filtro de token Edge N-gram aos prefixos de índice de palavras para permitir a correspondência rápida de prefixos. Combine-o com o filtro de token reverso para fazer a correspondência de sufixos.

  • Tokenização personalizada. Por exemplo, use o tokenizador de espaço em branco para dividir frases em tokens usando espaço em branco como delimitador

  • Dobragem ASCII. Adicione o filtro de dobragem ASCII padrão para normalizar diacríticos como ö ou ê em termos de pesquisa.

Nota

Os analisadores personalizados não são expostos no portal do Azure. A única maneira de adicionar um analisador personalizado é através do código que define um índice.

Criar um analisador personalizado

Para criar um analisador personalizado, especifique-o na seção de um índice em tempo de design e, em seguida, faça referência a ele em campos pesquisáveis usando a analyzer propriedade ou o analyzersindexAnalyzer par e searchAnalyzer . Edm.String

Uma definição de analisador inclui um nome, tipo, um ou mais filtros de caracteres, um máximo de um tokenizador e um ou mais filtros de token para processamento pós-tokenização. Os filtros de caracteres são aplicados antes da tokenização. 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 qualquer um dos analisadores, tokenizadores, filtros de token ou filtros de caracteres internos. Deve conter apenas letras, dígitos, espaços, traços ou sublinhados, só pode começar e terminar com caracteres alfanuméricos e está limitado a 128 caracteres.

  • O tipo deve ser #Microsoft.Azure.Search.CustomAnalyzer.

  • charFilterspode ser um ou mais filtros de Filtros de Caracteres, processados antes da tokenização, na ordem fornecida. Alguns filtros de caracteres têm opções, que podem ser definidas em uma charFilters seção. Os filtros de caracteres são opcionais.

  • tokenizer é exatamente um Tokenizer. É necessário um valor. Se precisar de mais de um tokenizador, você pode criar vários analisadores personalizados e atribuí-los campo a campo em seu esquema de índice.

  • tokenFilters pode ser um ou mais filtros de Filtros de Token, processados após a tokenização, na ordem fornecida. Para filtros de token com opções, adicione uma tokenFilter seção para especificar a configuração. Os filtros de token são opcionais.

Os analisadores não devem produzir tokens com mais de 300 caracteres, ou a indexação falhará. Para cortar token longo ou excluí-los, use o TruncateTokenFilter e o LengthTokenFilter, respectivamente. Consulte Filtros de token 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 vai 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 char, tokenizadores e filtros de token são adicionadas ao índice somente se você estiver definindo opções personalizadas. Para usar um filtro ou tokenizador existente no estado em que se encontra, especifique-o pelo nome na definição do analisador. Para obter mais informações, consulte Criar índice (REST). Para obter mais exemplos, consulte Adicionar analisadores no Azure AI Search.

Testar analisadores personalizados

Você pode usar o Test Analyzer (REST) para ver como um analisador divide determinado texto em tokens.

Pedir

  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 tokenizador, um filtro de token ou um filtro de caracteres é definido, ele não pode ser modificado. Novos podem ser adicionados a um índice existente somente se o allowIndexDowntime sinalizador 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 coloca o índice offline por pelo menos alguns segundos, fazendo com que as solicitações de indexação e consulta falhem. O desempenho e a disponibilidade de gravação do índice podem ser prejudicados por vários minutos após a atualização do índice, ou por mais tempo para índices muito grandes, mas esses efeitos são temporários e, eventualmente, resolvem por conta própria.

Analisadores integrados

Se você quiser usar um analisador interno com opções personalizadas, criar um analisador personalizado é o mecanismo pelo qual você especifica essas opções. Por outro lado, para usar um analisador interno no estado em que se encontra, 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 apenas quando as opções estão disponíveis) Trata todo o conteúdo de um campo como um único token. Isso é útil para dados como códigos postais, IDs e alguns nomes de produtos.
padrão Analisador de padrões Separa o texto de forma flexível em termos através de um padrão de expressão regular.

Opções

minúsculas (tipo: bool) - Determina se os termos são minúsculos. O padrão é true.

pattern (type: string) - 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 (type: string) - Sinalizadores de expressão regular. O padrão é uma cadeia de caracteres vazia. Valores permitidos: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES

stopwords (type: string array) - Uma lista de stopwords. O padrão é uma lista vazia.
simples (o tipo aplica-se apenas quando as opções estão disponíveis) Divide o texto em letras não escritas e converte-as em minúsculas.
padrão
(Também referido como standard.lucene)
Analisador padrão Analisador Lucene padrão, composto pelo tokenizador padrão, filtro minúsculo e filtro stop.

Opções

maxTokenLength (type: int) - O comprimento máximo do token. O padrão é 255. Tokens maiores do que o comprimento máximo são divididos. O comprimento máximo do token que pode ser usado é de 300 caracteres.

stopwords (type: string array) - Uma lista de stopwords. O padrão é uma lista vazia.
standardasciifolding.lucene (o tipo aplica-se apenas quando as opções estão disponíveis) Analisador padrão com filtro dobrável ASCII.
parar StopAnalyzer Divide o texto em letras não-letras, aplica os filtros de token de minúsculas e palavras-chave.

Opções

stopwords (type: string array) - Uma lista de stopwords. O padrão é uma lista predefinida para inglês.
espaço em branco (o tipo aplica-se apenas quando as opções estão disponíveis) Um analisador que usa o tokenizador de espaço em branco. Os tokens com mais de 255 caracteres são divididos.

1 Os tipos de analisador são sempre prefixados em código com #Microsoft.Azure.Search tal que PatternAnalyzer seria realmente especificado como #Microsoft.Azure.Search.PatternAnalyzer. Removemos o prefixo por brevidade, mas o prefixo é necessário no seu código.

O analyzer_type é fornecido apenas para analisadores que podem ser personalizados. Se não houver opções, como é o caso do analisador de palavras-chave, não há nenhum tipo #Microsoft.Azure.Search associado.

Filtros de caracteres

Os filtros de caracteres adicionam processamento antes que uma cadeia de caracteres chegue ao tokenizador.

O Azure AI Search dá suporte a filtros de caracteres na lista a seguir. Mais informações sobre cada um deles 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 apenas quando as opções estão disponíveis) Um filtro char que tenta remover construções HTML.
mapeamento MapeamentoCharFilter Um filtro char que aplica mapeamentos definidos com a opção mapeamentos. A correspondência é gananciosa (a correspondência de padrão mais longa em um determinado ponto vence). A substituição pode ser a cadeia de caracteres vazia.

Opções

mapeamentos (tipo: matriz de cadeia de caracteres) - Uma lista de mapeamentos do seguinte formato: a=>b (todas as ocorrências do caractere são substituídas por caractere ab). Obrigatório.
pattern_replace PatternReplaceCharFilter Um filtro char que substitui caracteres na cadeia de caracteres 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 a serem substituídos. Por exemplo, texto de entrada = , padrão = substituição = , resultado = aa bb aa bb$1#$2(aa)\\\s+(bb)aa#bb aa#bb.

Opções

pattern (type: string) - Obrigatório.

substituição (tipo: string) - Obrigatório.

1 Os tipos de filtro Char são sempre prefixados em código com #Microsoft.Azure.Search tal que MappingCharFilter seria realmente especificado como #Microsoft.Azure.Search.MappingCharFilter. Removemos o prefixo para reduzir a largura da tabela, mas lembre-se de incluí-lo no seu código. Observe que char_filter_type é fornecido apenas para filtros que podem ser personalizados. Se não houver opções, como é o caso do html_strip, não haverá nenhum tipo #Microsoft.Azure.Search associado.

Tokenizadores

Um tokenizador divide o texto contínuo em uma sequência de tokens, como quebrar uma frase em palavras ou uma palavra em formas de raiz.

O Azure AI Search dá suporte a tokenizadores na lista a seguir. Mais informações sobre cada um deles podem ser encontradas na referência da API Lucene.

tokenizer_name tokenizer_type 1 Descrição e Opções
clássico ClassicTokenizer Tokenizador baseado em gramática que é adequado para processar a maioria dos documentos em língua europeia.

Opções

maxTokenLength (type: int) - O comprimento máximo do token. Padrão: 255, máximo: 300. Tokens maiores que o comprimento máximo são divididos.
edgeNGram EdgeNGramTokenizer Tokeniza a entrada de uma borda em n-gramas de determinado tamanho(s).

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 (type: string array) - Classes de caracteres para manter nos tokens. Valores permitidos:
letter, , , , digitpunctuationwhitespacesymbol. O padrão é uma matriz vazia - mantém todos os caracteres.
keyword_v2 Palavra-chaveTokenizerV2 Emite toda a entrada como um único token.

Opções

maxTokenLength (type: int) - O comprimento máximo do token. Padrão: 256, máximo: 300. Tokens maiores que o comprimento máximo são divididos.
carta (o tipo aplica-se apenas quando as opções estão disponíveis) Divide o texto em letras não-letras. Os tokens com mais de 255 caracteres são divididos.
minúsculas (o tipo aplica-se apenas quando as opções estão disponíveis) Divide o texto em letras não escritas e converte-as em minúsculas. Os tokens com mais de 255 caracteres são divididos.
microsoft_language_tokenizer MicrosoftLanguageTokenizer Divide o texto usando regras específicas do idioma.

Opções

maxTokenLength (type: int) - O comprimento máximo do token, padrão: 255, máximo: 300. Tokens maiores que o comprimento máximo são divididos. Tokens com mais de 300 caracteres são primeiro divididos em tokens de comprimento 300 e, em seguida, cada um desses tokens é dividido com base no conjunto maxTokenLength.

isSearchTokenizer (type: bool) - Definido como true se usado como o tokenizador de pesquisa, definido como false se usado como o tokenizador de indexação.

language (type: string) - Idioma a ser usado, padrão english. Os valores permitidos incluem:
bangla, , bulgarian, , , croatiancatalanchineseSimplifiedchineseTraditionalczechdanishdutchenglishfrenchgermangreekgujaratihindiicelandicindonesianitalianjapanesekannadakoreanmalaymalayalammarathinorwegianBokmaalpolishportugueseportugueseBrazilianpunjabiromanianrussianserbianCyrillicserbianLatinslovenianspanishswedishtamilteluguthaiukrainianurduvietnamese
microsoft_language_stemming_tokenizer MicrosoftLanguageStemmingTokenizer Divide o texto usando regras específicas do idioma e reduz as palavras às suas formas base. Este tokenizador realiza lemmatização.

Opções

maxTokenLength (type: int) - O comprimento máximo do token, padrão: 255, máximo: 300. Tokens maiores que o comprimento máximo são divididos. Tokens com mais de 300 caracteres são primeiro divididos em tokens de comprimento 300 e, em seguida, cada um desses tokens é dividido com base no conjunto maxTokenLength.

isSearchTokenizer (type: bool) - Definido como true se usado como o tokenizador de pesquisa, definido como false se usado como o tokenizador de indexação.

language (type: string) - Idioma a ser usado, padrão english. Os valores permitidos incluem:
arabic, , bangla, , , czechbulgariancatalancroatiandanishdutchenglishestonianfinnishfrenchgermangreekgujaratihebrewhindihungarianicelandicindonesianitaliankannadalatvianlithuanianmalaymalayalammarathinorwegianBokmaalpolishportugueseportugueseBrazilianpunjabiromanianrussianserbianCyrillicserbianLatinslovakslovenianspanishswedishtamilteluguturkishukrainianurdu
nGram NGramTokenizer Tokeniza a entrada em n-gramas do(s) tamanho(s) fornecido(s).

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 (type: string array) - Classes de caracteres para manter nos tokens. Valores permitidos: letter, , , punctuationdigitwhitespace, symbol. O padrão é uma matriz vazia - mantém todos os caracteres.
path_hierarchy_v2 PathHierarchyTokenizerV2 Tokenizador para hierarquias semelhantes a caminhos. Opções

delimitador (tipo: string) - Padrão: '/.

replacement (type: string) - Se definido, substitui o caractere delimitador. Padrão igual ao valor do delimitador.

maxTokenLength (type: int) - O comprimento máximo do token. Padrão: 300, máximo: 300. Caminhos maiores que maxTokenLength são ignorados.

reverse (type: bool) - Se verdadeiro, gera token em ordem inversa. Predefinição: false.

skip (type: bool) - Tokens iniciais para pular. A predefinição é 0.
padrão PatternTokenizer Este tokenizador usa a correspondência de padrões regex para construir tokens distintos.

Opções

pattern (type: string) - 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 (type: string) - Sinalizadores de expressão regular. O padrão é uma cadeia de caracteres vazia. Valores permitidos: CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNIX_LINES

group (type: 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 (type: int) - O comprimento máximo do token. Padrão: 255, máximo: 300. Tokens maiores que o comprimento máximo são divididos.
uax_url_email UaxUrlEmailTokenizer Tokeniza urls e e-mails como um token.

Opções

maxTokenLength (type: int) - O comprimento máximo do token. Padrão: 255, máximo: 300. Tokens maiores que o comprimento máximo são divididos.
espaço em branco (o tipo aplica-se apenas quando as opções estão disponíveis) Divide o texto no espaço em branco. Os tokens com mais de 255 caracteres são divididos.

1 Os tipos de tokenizador são sempre prefixados em código com #Microsoft.Azure.Search tal que ClassicTokenizer seria realmente especificado como #Microsoft.Azure.Search.ClassicTokenizer. Removemos o prefixo para reduzir a largura da tabela, mas lembre-se de incluí-lo no seu código. Observe que tokenizer_type é fornecido apenas para tokenizadores que podem ser personalizados. Se não houver opções, como é o caso do tokenizador de letras, não haverá nenhum tipo #Microsoft.Azure.Search associado.

Filtros de token

Um filtro de token é usado para filtrar ou modificar os tokens gerados por um tokenizador. Por exemplo, você pode especificar um filtro minúsculo que converta todos os caracteres em 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 são listados.

Na tabela abaixo, os filtros de token implementados usando o Apache Lucene estão vinculados à documentação da API do Lucene.

token_filter_name token_filter_type 1 Descrição e Opções
arabic_normalization (o tipo aplica-se apenas quando as opções estão disponíveis) Um filtro simbólico que aplica o normalizador árabe para normalizar a ortografia.
apóstrofo (o tipo aplica-se apenas quando as opções estão disponíveis) Tira 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 Basic Latin bloco Unicode) em seus equivalentes ASCII, se existirem.

Opções

preserveOriginal (tipo: bool) - Se verdadeiro, 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 (type: string array) - Scripts a serem ignorados. Os valores permitidos incluem: han, , , katakanahiraganahangul. O padrão é uma lista vazia.

outputUnigrams (type: bool) - Defina como true se você sempre quiser produzir unigramas e bigramas. O padrão é false.
cjk_width (o tipo aplica-se apenas quando as opções estão disponíveis) Normaliza as diferenças de largura do CJK. Dobra variantes ASCII de largura total no latim básico equivalente e variantes Katakana de meia largura no kana equivalente.
clássico (o tipo aplica-se apenas quando as opções estão disponíveis) Remove os possessivos em inglês e os pontos das siglas.
common_grams CommonGramTokenFilter Construa bigramas para termos frequentes durante a indexação. Os termos isolados também continuam indexados, com bigramas sobrepostos.

Opções

commonWords (type: string array) - O conjunto de palavras comuns. O padrão é uma lista vazia. Obrigatório.

ignoreCase (tipo: bool) - Se verdadeiro, a correspondência não diferencia maiúsculas de minúsculas. O padrão é false.

queryMode (tipo: bool) - Gera bigramas e remove palavras comuns e termos únicos seguidos de uma palavra comum. O padrão é false.
dictionary_decompounder DicionárioDecompounderTokenFilter Decompõe palavras compostas encontradas em muitas línguas germânicas.

Opções

wordList (type: string array) - A lista de palavras contra as quais corresponder. O padrão é uma lista vazia. Obrigatório.

minWordSize (type: int) - Apenas palavras com mais tempo do que isso serão processadas. A predefinição é 5.

minSubwordSize (type: int) - Somente subpalavras maiores do que isso serão produzidas. A predefinição é 2.

maxSubwordSize (type: int) - Somente subpalavras mais curtas do que isso serão produzidas. A predefinição é 15.

onlyLongestMatch (tipo: bool) - Adicione apenas a subpalavra correspondente mais longa à saída. O padrão é false.
edgeNGram_v2 EdgeNGramTokenFilterV2 Gera n-gramas do(s) tamanho(s) determinado(s) a partir da frente ou do verso 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 (type: string) - Especifica de que lado da entrada o n-grama deve ser gerado. Valores permitidos: front, back
elisão ElisionTokenFilter Remove elisões. Por exemplo, l'avion (o plano) é convertido em avion (plano).

Opções

articles (type: string array) - Um conjunto de artigos a remover. O padrão é uma lista vazia. Se não houver uma lista de artigos definida, por padrão, todos os artigos franceses serão removidos.
german_normalization (o tipo aplica-se apenas quando as opções estão disponíveis) Normaliza caracteres alemães de acordo com a heurística do algoritmo de bola de neve German2.
hindi_normalization (o tipo aplica-se apenas quando as opções estão 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 de texto em idiomas indianos.
manter KeepTokenFilter Um filtro de token que mantém apenas tokens com texto contido na lista especificada de palavras.

Opções

keepWords (type: string array) - Uma lista de palavras a serem mantidas. O padrão é uma lista vazia. Obrigatório.

keepWordsCase (tipo: bool) - Se verdadeiro, minúsculas todas as palavras primeiro. O padrão é false.
keyword_marker KeywordMarkerTokenFilter Marca termos como palavras-chave.

Opções

keywords (type: string array) - Uma lista de palavras para marcar como palavras-chave. O padrão é uma lista vazia. Obrigatório.

ignoreCase (tipo: bool) - Se verdadeiro, minúsculas todas as palavras primeiro. O padrão é false.
keyword_repeat (o tipo aplica-se apenas quando as opções estão disponíveis) Emite cada token recebido duas vezes, uma vez como palavra-chave e uma vez como não-palavra-chave.
KSTEM (o tipo aplica-se apenas quando as opções estão disponíveis) Um filtro de alto desempenho kstem para inglês.
length LengthTokenFilter Remove palavras muito longas ou 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.
limit 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. A predefinição é 1.

consumeAllTokens (type: bool) - Se todos os tokens da entrada devem ser consumidos, mesmo que maxTokenCount seja atingido. O padrão é false.
minúsculas (o tipo aplica-se apenas quando as opções estão disponíveis) Normaliza o texto do token para minúsculas.
nGram_v2 NGramTokenFilterV2 Gera n-gramas do(s) tamanho(s) fornecido(s).

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 (type: string array) - Uma lista de padrões a serem correspondidos a cada token. Obrigatório.

preserveOriginal (type: bool) - Defina como true para retornar o token original, mesmo que um dos padrões corresponda, default: true
pattern_replace PatternReplaceTokenFilter Um filtro de token que aplica um padrão a cada token no fluxo, substituindo ocorrências de correspondência pela cadeia de caracteres de substituição especificada.

Opções

pattern (type: string) - Obrigatório.

substituição (tipo: string) - Obrigatório.
persian_normalization (o tipo aplica-se apenas quando as opções estão disponíveis) Aplica normalização para persa.
fonética PhoneticTokenFilter Crie tokens para correspondências fonéticas.

Opções

codificador (tipo: string) - Codificador fonético a ser usado. Os valores permitidos incluem: metaphone, , , , , , , caverphone2soundexrefinedSoundexnysiiscologne, , , . doubleMetaphonecaverphone1koelnerPhonetikhaasePhonetikbeiderMorse Padrão: metaphone. O padrão é metafone.

Consulte o codificador para obter mais informações.

replace (type: 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 apenas quando as opções estão disponíveis) Transforma o fluxo de token de acordo com o algoritmo de derivação de Porter.
reverse (o tipo aplica-se apenas quando as opções estão disponíveis) Inverte a cadeia de caracteres do token.
scandinavian_normalization (o tipo aplica-se apenas quando as opções estão disponíveis) Normaliza o uso dos caracteres escandinavos intercambiáveis.
scandinavian_folding (o tipo aplica-se apenas quando as opções estão disponíveis) Dobra caracteres åÅäæÄÆescandinavos para dentro e para dentro oa do öÖøØ. Também discrimina o uso de vogais duplas aa, , , e , ooaeaooe deixando apenas a primeira.
telha ShingleTokenFilter Cria combinações de tokens como um único token.

Opções

maxShingleSize (tipo: int) - O padrão é 2.

minShingleSize (tipo: int) - Padrão para 2.

outputUnigrams (tipo: bool) - se verdadeiro, o fluxo de saída contém os tokens de entrada (unigramas), bem como telhas. O padrão é true.

outputUnigramsIfNoShingles (tipo: bool) - Se verdadeiro, substitua o comportamento de outputUnigrams==false para aqueles momentos em que nenhuma telha está disponível. O padrão é false.

tokenSeparator (type: string) - A cadeia de caracteres a ser usada ao unir tokens adjacentes para formar uma telha. O padrão é um único espaço vazio.

filterToken (type: string) - A cadeia de caracteres a ser inserida para cada posição para a qual não há token. A predefinição é _.
bola de neve SnowballTokenFilter Filtro de token bola de neve.

Opções

language (type: string) - Os valores permitidos incluem: armenian, , , , englishromaniangerman2germanhungarianitaliannorwegianlovinsporterkpportugueseswedishbasquedutchspanishfinnishrussianfrenchcatalandanishturkish
sorani_normalization SoraniNormalizationTokenFilter Normaliza a representação Unicode do Sorani texto.

Opções

Nenhum.
Temmer StemmerTokenFilter Filtro de derivação específico do idioma.

Opções

language (type: string) - Os valores permitidos incluem:
- 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 Todos os termos dicionários são marcados como palavras-chave, o que impede que se destinem ao longo da cadeia. Deve ser colocado antes de quaisquer filtros de derivação.

Opções

rules (type: string array) - Regras de manutenção no seguinte formato word => stem , por exemplo ran => run. O padrão é uma lista vazia. Obrigatório.
Palavras de ordem StopwordsTokenFilter Remove palavras de parada de um fluxo de token. Por padrão, o filtro usa uma lista de palavras de parada predefinida para inglês.

Opções

stopwords (type: string array) - Uma lista de stopwords. Não é possível especificar se uma stopwordsList for especificada.

stopwordsList (type: string) - Uma lista predefinida de palavras paradas. Não é possível especificar se stopwords for especificado. Os valores permitidos incluem:, , , , catalansoranihindihungarianindonesiangreekirishgalicianthaifrenchturkishspanishromanianportuguesepersianbraziliandanishbasquebulgarianenglishswedishrussiannorwegianlatviangermandutchitalianfinnishczechpadrão: .arabicenglisharmenian Não é possível especificar se stopwords for especificado.

ignoreCase (tipo: bool) - Se verdadeiro, todas as palavras são maiúsculas inferiores primeiro. O padrão é false.

removeTrailing (tipo: bool) - Se verdadeiro, ignore o último termo de pesquisa se for uma palavra de parada. O padrão é true.
sinónimo SynonymTokenFilter Corresponde a sinônimos de uma ou várias palavras em um fluxo de token.

Opções

sinônimos (tipo: string array) - Obrigatório. Lista de sinónimos num dos dois formatos seguintes:

-incrível, inacreditável, fabuloso = incrível - todos os termos no lado esquerdo de =>> símbolo são substituídos por todos os termos no seu lado direito.

-incrível, inacreditável, fabuloso, incrível - Uma lista separada por vírgulas de palavras equivalentes. Defina a opção expandir para alterar a forma como esta lista é interpretada.

ignoreCase (tipo: bool) - Entrada de dobras de caixa para correspondência. O padrão é false.

expand (type: bool) - Se verdadeiro, todas as palavras na lista de sinônimos (se => notação não é usada) mapeiam umas para as outras.
A seguinte lista: incrível, inacreditável, fabuloso, incrível é equivalente a: incrível, inacreditável, fabuloso, incrível => incrível, inacreditável, fabuloso, incrível

- Se falso, a seguinte lista: incrível, inacreditável, fabuloso, incrível são equivalentes a: incrível, inacreditável, fabuloso, incrível => incrível.
guarnição (o tipo aplica-se apenas quando as opções estão disponíveis) Corta o espaço em branco à esquerda e à direita dos tokens.
truncate TruncateTokenFilter Trunca os termos em um comprimento específico.

Opções

comprimento (tipo: int) - Padrão: 300, máximo: 300. Obrigatório.
único UniqueTokenFilter Filtra tokens com o mesmo texto do token anterior.

Opções

onlyOnSamePosition (tipo: bool) - Se definido, remova as duplicatas apenas na mesma posição. O padrão é true.
maiúsculas (o tipo aplica-se apenas quando as opções estão disponíveis) Normaliza o texto do token para maiúsculas.
word_delimiter WordDelimiterTokenFilter Divide palavras em subpalavras e executa transformações opcionais em grupos de subpalavras.

Opções

generateWordParts (type: bool) - Faz com que partes de palavras sejam geradas, por exemplo AzureSearch , torna-se AzureSearch. O padrão é true.

generateNumberParts (type: bool) - Faz com que subpalavras numéricas sejam geradas. O padrão é true.

catenateWords (tipo: bool) - Faz com que o máximo de execuções de partes de palavras seja catenado, por exemplo Azure-Search , torna-se AzureSearch. O padrão é false.

catenateNumbers (tipo: bool) - Faz com que as execuções máximas de partes numéricas sejam catenadas, por exemplo 1-2 , torna-se 12. O padrão é false.

catenateAll (tipo: bool) - Faz com que todas as partes da subpalavra sejam catenadas, por exemplo Azure-Search-1 , torna-se AzureSearch1. O padrão é false.

splitOnCaseChange (type: bool) - Se true, divide palavras em caseChange, por exemplo AzureSearch , torna-se AzureSearch. 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 , torna-se Azure1Search. O padrão é true.

stemEnglishPossessive (tipo: bool) - Faz com que o trailing 's seja removido para cada subpalavra. O padrão é true.

protectedWords (type: string array) - Tokens para proteger de serem delimitados. O padrão é uma lista vazia.

1 Os tipos de filtro de token são sempre prefixados em código com #Microsoft.Azure.Search tal que ArabicNormalizationTokenFilter seria realmente especificado como #Microsoft.Azure.Search.ArabicNormalizationTokenFilter. Removemos o prefixo para reduzir a largura da tabela, mas lembre-se de incluí-lo no seu código.

Consulte também