A documentação abaixo é gerada a partir da system table
system.functions.alphaTokens
Introduzido em: v1.1.0 Seleciona substrings formadas por bytes consecutivos nos intervalosa-z e A-Z e retorna um array com as substrings selecionadas.
Sintaxe
splitByAlpha
Argumentos
s— A string a ser dividida.Stringmax_substrings— Opcional. Quandomax_substrings > 0, o número de substrings retornadas não será maior quemax_substrings; caso contrário, a função retornará o máximo de substrings possível.Int64
s. Array(String)
Exemplos
Exemplo de uso
Query
Response
arrayStringConcat
Introduzido em: v1.1.0 Concatena as representações em string dos valores listados no array usando o separador fornecido, que é um parâmetro opcional definido como uma string vazia por padrão. Sintaxearray_to_string
Argumentos
arr— O array a ser concatenado.Array(T)separator— Opcional. String usada como separador. Por padrão, é uma string vazia.const String
String
Exemplos
Exemplo de uso
Query
Response
extractAllGroupsVertical
Introduzido em: v20.5.0 Encontra todos os grupos em uma string usando uma expressão regular e retorna um array de arrays, em que cada array contém os fragmentos correspondentes de cada grupo, agrupados pela ordem em que aparecem na string de entrada. SintaxeextractAllGroups
Argumentos
s— String de entrada da qual extrair.StringouFixedStringregexp— Expressão regular usada para correspondência.const Stringouconst FixedString
Array(Array(String))
Exemplos
Exemplo de uso
Query
Response
naiveBayesNgrams
Introduzido em: v26.7.0 Divide o texto em n-gramas usando a mesma tokenização de um dicionário Naive Bayes (o layoutNAIVE_BAYES): modo byte, codepoint ou token, com padding de borda opcional. Use-o para gerar os dados de treinamento pré-agregados (ngram, class_id, count) consumidos por esse dicionário, para que os n-gramas de treinamento correspondam exatamente ao que naiveBayesClassifier produz durante a consulta.
Sintaxe
text— Texto a ser dividido em n-gramas.Stringn— Tamanho do n-grama, de 1 a 1024.const UIntmode— Modo de tokenização: ‘byte’, ‘codepoint’ ou ‘token’.const Stringstart_token— Opcional. Token de borda adicionado ao início da entrada (n-1) vezes; um número para ‘byte’/‘codepoint’, um literal para ‘token’. Vazio significa sem padding.const Stringend_token— Opcional. Token de borda adicionado ao final da entrada (n-1) vezes.const String
Array(String)
Exemplos
Bigramas de token
Query
Response
Query
Response
Query
Response
Query
Response
ngrams
Introduzido em: v21.11.0 Divide uma string UTF-8 em n-gramas de tamanhoN.
Sintaxe
s— String de entrada.StringouFixedStringN— O comprimento do n-grama.const UInt8/16/32/64
Array(String)
Exemplos
Exemplo de uso
Query
Response
reverseBySeparator
Introduzido em: v26.2.0 Inverte a ordem das substrings em uma string, separadas por um separador especificado. Esta função divide a string pelo separador, inverte a ordem das partes resultantes e as une novamente usando o mesmo separador. Ela é útil para fazer o parsing de nomes de domínio, caminhos de arquivo ou outros dados hierárquicos em que seja necessário inverter a ordem dos componentes. Exemplos:- reverseBySeparator(‘www.google.com’) retorna ‘com.google.www’
- reverseBySeparator(‘a/b/c’, ’/’) retorna ‘c/b/a’
- reverseBySeparator(‘x::y::z’, ’::’) retorna ‘z::y::x’
string— A string de entrada para inverter a ordem de suas partes.Stringseparator— A string separadora usada para identificar as partes. Se não for fornecida, usa ’.’ (ponto). Padrão: ’.’String
String
Exemplos
Reversão básica de domínio
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
splitByChar
Introduzido em: v1.1.0 Divide uma string em um array de substrings usando como separador a string constante especificadaseparator, que deve ter exatamente um caractere.
Substrings vazias podem ser retornadas se o separador ocorrer no início ou no fim da string, ou se houver vários separadores consecutivos.
A configuração
splitby_max_substrings_includes_remaining_string (padrão: 0) controla se a parte restante da string é incluída no último elemento do array resultante quando o argumento max_substrings > 0.- Um separador ocorre no início ou no fim da string
- Há vários separadores consecutivos
- A string original
sestá vazia
separator— O separador deve ser um caractere de um único byte.Strings— A string a ser dividida.Stringmax_substrings— Opcional. Semax_substrings > 0, o array retornado conterá no máximomax_substringssubstrings; caso contrário, a função retornará o máximo possível de substrings. O valor padrão é0.Int64
Array(String)
Exemplos
Exemplo de uso
Query
Response
splitByNonAlpha
Introduzido em: v21.9.0 Divide uma string em um array de substrings, usando caracteres de espaço em branco e de pontuação como separadores.A configuração
splitby_max_substrings_includes_remaining_string (padrão: 0) controla se a string restante é incluída no último elemento do array resultante quando o argumento max_substrings > 0.s— A string a ser dividida.Stringmax_substrings— Opcional. Quandomax_substrings > 0, o número de substrings retornadas não será maior quemax_substrings; caso contrário, a função retornará o maior número possível de substrings. Valor padrão:0.Int64
s. Array(String)
Exemplos
Exemplo de uso
Query
Response
splitByRegexp
Introduzido em: v21.6.0 Divide uma string separada pela expressão regular fornecida em um array de substrings. Se a expressão regular fornecida estiver vazia, a string será dividida em um array de caracteres individuais. Se nenhuma correspondência for encontrada para a expressão regular, a string não será dividida. Substrings vazias podem ser retornadas quando:- uma correspondência não vazia da expressão regular ocorre no início ou no fim da string
- há várias correspondências não vazias consecutivas da expressão regular
- a string original está vazia enquanto a expressão regular não está vazia.
A configuração
splitby_max_substrings_includes_remaining_string (padrão: 0) controla se a string restante é incluída no último elemento do array resultante quando o argumento max_substrings > 0.regexp— Expressão regular. Constante.StringouFixedStrings— A string a ser dividida.Stringmax_substrings— Opcional. Quandomax_substrings > 0, as substrings retornadas não excederãomax_substrings; caso contrário, a função retornará o maior número possível de substrings. Valor padrão:0.Int64
s. Array(String)
Exemplos
Exemplo de uso
Query
Response
Query
Response
splitByString
Introduzido em: v1.1.0 Divide uma string usando umseparator constante composto por vários caracteres em um array de substrings.
Se a string separator estiver vazia, ela dividirá a string s em um array de caracteres individuais.
Substrings vazias podem ser retornadas quando:
- Um separador não vazio aparece no início ou no fim da string
- Há vários separadores não vazios consecutivos
- A string original
sestá vazia enquanto o separador não está vazio
A configuração
splitby_max_substrings_includes_remaining_string (padrão: 0) controla se a string restante é incluída no último elemento do array resultante quando o argumento max_substrings > 0.separator— O separador.Strings— A string a ser dividida.Stringmax_substrings— Opcional. Quandomax_substrings > 0, as substrings retornadas não serão mais numerosas quemax_substrings; caso contrário, a função retornará o maior número possível de substrings. Valor padrão:0.Int64
s Array(String)
Exemplos
Exemplo de uso
Query
Response
Query
Response
splitByWhitespace
Introduzido na versão: v21.9.0 Divide uma string separada por caracteres de espaço em branco em um array de substrings.A configuração
splitby_max_substrings_includes_remaining_string (padrão: 0) controla se o restante da string é incluído no último elemento do array resultante quando o argumento max_substrings > 0.s— A string a ser dividida.Stringmax_substrings— Opcional. Quandomax_substrings > 0, a quantidade de substrings retornadas não será maior quemax_substrings; caso contrário, a função retornará o maior número possível de substrings. Valor padrão:0.Int64
s. Array(String)
Exemplos
Exemplo de uso
Query
Response
tokens
Introduzido em: v21.11.0 Divide uma string em tokens usando o tokenizador informado. Tokenizadores disponíveis:splitByNonAlphadivide strings em caracteres ASCII não alfanuméricos (veja também a função splitByNonAlpha).splitByString(S)divide strings usando determinadas strings separadorasSdefinidas pelo usuário (veja também a função splitByString). Os separadores podem ser especificados com um parâmetro opcional, por exemplo,tokens(value, 'splitByString', [', ', '; ', '\n', '\\']). Observe que cada string pode ser composta por vários caracteres (', 'no exemplo). A lista padrão de separadores, se não for especificada explicitamente, é um único espaço em branco[' '].splitByRegexp(regexp[, match_tokens])divide strings de acordo com uma expressão regularregexpdefinida pelo usuário. A expressão regular é obrigatória, por exemplo,tokens(value, 'splitByRegexp', '[^\p{L}\p{N}#+]+'). Com o argumento opcionalmatch_tokensmantido em seu valor padrão (false;0/1também são aceitos),regexpé um separador (veja também a função splitByRegexp). Commatch_tokens = true,regexpé correspondido diretamente: cada correspondência contribui com no máximo um token — seu primeiro grupo de captura, ou a correspondência inteira seregexpnão tiver grupo de captura — e tudo fora das correspondências é descartado, por exemplo,tokens('tag:hello tag:world', 'splitByRegexp', 'tag:(\w+)', true)retorna['hello', 'world'].asciiCJKdivide strings em tokens usando regras de fronteira de palavras do Unicode (semelhantes ao UAX #29). Caracteres ASCII alfanuméricos e sublinhados formam tokens com conectores (:para letras,.e'para caracteres do mesmo tipo). Caracteres Unicode não ASCII se tornam tokens de um único caractere.chinesesegmenta texto em chinês em palavras usando um dicionário e um modelo oculto de Markov (o algoritmo segue o jieba; o dicionário embutido e os dados do modelo são derivados do cppjieba). Diferentemente deasciiCJK, que trata cada caractere não ASCII como um token de um único caractere,chineseagrupa caracteres chineses consecutivos em palavras, o que gera tokens mais significativos e maior qualidade de busca para texto em chinês. Um argumento opcional degranularitypode sercoarse_grained(o padrão) oufine_grained; este último também enumera subpalavras sobrepostas, melhorando a revocação ao custo de um índice maior.icu(locale)divide strings em tokens de palavras usando a segmentação de palavras Unicode (UAX #29) da biblioteca ICU. Para scripts sem espaço em branco entre palavras (por exemplo, chinês, japonês e tailandês), o ICU aplica segmentação baseada em dicionário, de modo que esse texto é dividido em palavras significativas.localeé a localidade do ICU passada ao segmentador (a segmentação é principalmente orientada por script e dicionário; a localidade seleciona a personalização específica de localidade do ICU); ela é obrigatória e passada como um argumento separado, por exemplo,tokens(value, 'icu', 'ja').japanesedivide texto em japonês em palavras usando o analisador morfológico MeCab. Requer um dicionário configurado na configuração do servidor (consulte a documentação de índice de texto).ngrams(N)divide strings emN-gramas de mesmo tamanho (veja também a função ngrams). O comprimento do ngram pode ser especificado com um parâmetro inteiro opcional entre 1 e 8, por exemplo,tokens(value, 'ngrams', 3). O tamanho padrão do ngram, se não for especificado explicitamente, é 3.sparseGrams(min_length, max_length, min_cutoff_length)divide strings em n-gramas de comprimento variável, com no mínimomin_lengthe no máximomax_lengthcaracteres (inclusive) (veja também a função sparseGrams). A menos que sejam especificados explicitamente,min_lengthemax_lengthassumem os valores padrão 3 e 100. Se o parâmetromin_cutoff_lengthfor fornecido, apenas n-gramas com comprimento maior ou igual amin_cutoff_lengthserão retornados. Em comparação comngrams(N), o tokenizadorsparseGramsproduz N-gramas de comprimento variável, permitindo uma representação mais flexível do texto original. Por exemplo,tokens(value, 'sparseGrams', 3, 5, 4)gera internamente 3-, 4- e 5-gramas a partir da string de entrada, mas apenas os 4- e 5-gramas são retornados.arraynão realiza tokenização, ou seja, o valor de cada linha é um token (veja também a função array). Para compatibilidade com outros sistemas,keywordestá disponível como um alias dearray.
splitByString, se os tokens não formarem um código de prefixo, provavelmente você desejará que correspondências com separadores mais longos tenham prioridade.
Para isso, passe os separadores em ordem decrescente de comprimento.
Por exemplo, com separators = ['%21', '%'], a string %21abc seria tokenizada como ['abc'], enquanto separators = ['%', '%21'] resultaria em ['21ac'] (o que provavelmente não é o que você desejava).
Sintaxe
value— A string de entrada.StringouFixedStringtokenizer— O tokenizador a ser usado. Os argumentos válidos sãosplitByNonAlpha,splitByString,splitByRegexp,asciiCJK,chinese,icu,japanese,ngrams,sparseGramsearray. Opcional; se não for definido explicitamente, o valor padrão ésplitByNonAlpha.const Stringlocale— Relevante apenas se o argumentotokenizerforicu: a localidade obrigatória, por exemplo,'ja'.const Stringn— Relevante apenas se o argumentotokenizerforngrams: um parâmetro opcional que define o comprimento dos ngrams. Se não for definido explicitamente, o valor padrão é3.const UInt8separators— Relevante apenas se o argumentotokenizerforsplit: um parâmetro opcional que define as strings separadoras. Se não for definido explicitamente, o valor padrão é[' '].const Array(String)regexp— Relevante apenas se o argumentotokenizerforsplitByRegexp: um parâmetro obrigatório que define a expressão regular.const Stringmatch_tokens— Relevante apenas se o argumentotokenizerforsplitByRegexp: um parâmetro opcional. Sefalse(padrão),regexpé um separador (divide como a funçãosplitByRegexp). Setrue,regexpé correspondido diretamente e cada correspondência contribui com seu primeiro grupo de captura (ou a correspondência inteira, seregexpnão tiver nenhum) como um token.const Boolmin_length— Relevante apenas se o argumentotokenizerforsparseGrams: um parâmetro opcional que define o comprimento mínimo do grama; o valor padrão é 3.const UInt8max_length— Relevante apenas se o argumentotokenizerforsparseGrams: um parâmetro opcional que define o comprimento máximo do grama; o valor padrão é 100.const UInt8min_cutoff_length— Relevante apenas se o argumentotokenizerforsparseGrams: um parâmetro opcional que define o comprimento mínimo de corte.const UInt8granularity— Relevante apenas se o argumentotokenizerforchinese: um parâmetro opcional,coarse_grained(padrão) oufine_grained, que controla a granularidade da segmentação.const String
Array
Exemplos
Tokenizador padrão
Query
Response
Query
Response
Query
Response
tokensForLikePattern
Introduzido em: v26.3.0 Divide uma string de padrão LIKE em tokens usando o tokenizador especificado. Ao contrário da funçãotokens, esta função reconhece a semântica dos padrões LIKE
(como caracteres curinga no início e no fim) e aplica regras específicas do tokenizador
para extrair tokens relevantes para correspondência de padrões.
Ela oferece suporte aos mesmos conjuntos de argumentos que a função tokens, com algumas
exceções: os tokenizadores chinese e icu não são compatíveis aqui.
A tokenização de padrões LIKE é relevante apenas para tokenizadores que
optam explicitamente pela semântica LIKE (supportsStringLike()). Chamar
tokensForLikePattern com um tokenizador sem suporte lança BAD_ARGUMENTS;
use tokens simples em vez disso.
Os argumentos adicionais após tokenizer são interpretados de acordo com o
tokenizador selecionado (por exemplo, n para ngrams, separators para
splitByString e min_length / max_length [/ min_cutoff_length]
para sparseGrams).
Esta função se destina principalmente a depuração e testes
e é usada internamente para analisar o comportamento da tokenização de padrões LIKE.
Sintaxe
value— A string de entrada.StringouFixedStringtokenizer— O tokenizador a ser usado. Os argumentos válidos sãosplitByNonAlpha,splitByString,asciiCJK,ngrams,sparseGramsearray. Opcional; se não for definido explicitamente, o valor padrão serásplitByNonAlpha.const Stringn— Relevante apenas se o argumentotokenizerforngrams: um parâmetro opcional que define o comprimento dos ngrams. Se não for definido explicitamente, o valor padrão será3.const UInt8separators— Relevante apenas se o argumentotokenizerforsplit: um parâmetro opcional que define as strings separadoras. Se não for definido explicitamente, o valor padrão será[' '].const Array(String)min_length— Relevante apenas se o argumentotokenizerforsparseGrams: um parâmetro opcional que define o comprimento mínimo do grama; o valor padrão é 3.const UInt8max_length— Relevante apenas se o argumentotokenizerforsparseGrams: um parâmetro opcional que define o comprimento máximo do grama; o valor padrão é 100.const UInt8min_cutoff_length— Relevante apenas se o argumentotokenizerforsparseGrams: um parâmetro opcional que define o comprimento mínimo de corte.const UInt8
Array
Exemplos
Tokenizador padrão
Query
Response