La recherche insensible à la casse suit les règles de passage des minuscules aux majuscules de la langue anglaise. Par exemple, le
i majuscule en anglais est
I, alors qu’en turc c’est İ ; les résultats pour les langues autres que l’anglais peuvent donc être inattendus.haystack) et la chaîne recherchée (appelée dans cette section needle) sont du texte encodé sur un seul octet. Si cette hypothèse est
violée, aucune exception n’est levée et les résultats sont indéfinis. La recherche avec des chaînes encodées en UTF-8 est généralement proposée par des variantes de fonction
distinctes. De même, si une variante de fonction UTF-8 est utilisée et que les chaînes d’entrée ne sont pas du texte encodé en UTF-8, aucune exception n’est levée et les
résultats sont indéfinis. Notez qu’aucune normalisation Unicode automatique n’est effectuée ; vous pouvez toutefois utiliser les fonctions
normalizeUTF8*() à cette fin.
Les fonctions générales sur les chaînes et les fonctions de remplacement dans les chaînes sont décrites séparément.
La documentation ci-dessous est générée à partir de la table système
system.functions.countMatches
Introduit dans : v21.1.0 Renvoie le nombre de correspondances d’une expression régulière dans une chaîne.Le comportement de cette fonction dépend de la version de ClickHouse :
- dans les versions < v25.6, la fonction arrête le comptage à la première correspondance vide, même si le motif autorise une correspondance vide.
- dans les versions >= 25.6, la fonction continue à s’exécuter lorsqu’une correspondance vide se produit. Le comportement legacy peut être restauré à l’aide du paramètre
count_matches_stop_at_empty_match = true;
haystack— La chaîne dans laquelle effectuer la recherche.Stringpattern— Motif d’expression régulière.String
UInt64
Exemples
Compter les séquences de chiffres
Query
Response
countMatchesCaseInsensitive
Introduite dans : v21.1.0 CommecountMatches, mais effectue une correspondance sans tenir compte de la casse.
Syntaxe
haystack— La chaîne dans laquelle effectuer la recherche.Stringpattern— Motif d’expression régulière.const String
UInt64
Exemples
Comptage insensible à la casse
Query
Response
countSubstrings
Introduit dans : v21.1.0 Renvoie le nombre de fois où la sous-chaîneneedle apparaît dans la chaîne haystack.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée. String ou Enum. -needle— Sous-chaîne à rechercher. String. -start_pos— Position (à partir de 1) danshaystackà laquelle la recherche commence. UInt. Facultatif.
UInt64
Exemples
Exemple d’utilisation
Query
Response
Query
Response
countSubstringsCaseInsensitive
Introduit dans : v21.1.0 CommecountSubstrings, mais effectue le comptage sans tenir compte de la casse.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.StringouEnumneedle— Sous-chaîne à rechercher.Stringstart_pos— Facultatif. Position (à partir de 1) danshaystackà laquelle la recherche commence.UInt*
needle dans haystack. UInt64
Exemples
Exemple d’utilisation
Query
Response
Query
Response
countSubstringsCaseInsensitiveUTF8
Introduit dans : v21.1.0 CommecountSubstrings, mais compte sans tenir compte de la casse et suppose que haystack est une chaîne UTF-8.
Syntaxe
haystack— Chaîne UTF-8 dans laquelle effectuer la recherche.StringouEnumneedle— Sous-chaîne à rechercher.Stringstart_pos— Facultatif. Position (à partir de 1) danshaystackà laquelle la recherche commence.UInt*
needle dans haystack. UInt64
Exemples
Exemple d’utilisation
Query
Response
Query
Response
extract
Introduit dans : v1.1.0 Extrait la première correspondance d’une expression régulière dans une chaîne. Si ‘haystack’ ne correspond pas à ‘pattern’, une chaîne vide est renvoyée. Cette fonction utilise la bibliothèque d’expressions régulières RE2. Consultez re2 pour connaître la Syntax prise en charge. Si l’expression régulière comporte des groupes de capture (sous-motifs), la fonction fait correspondre la chaîne d’entrée au premier groupe de capture. Syntaxehaystack— Chaîne à partir de laquelle extraire.Stringpattern— Expression régulière, contenant généralement un groupe de capture.const String
String
Exemples
Extraire le domaine d’une adresse e-mail
Query
Response
Query
Response
extractAll
Introduite dans : v1.1.0 Commeextract, mais renvoie un tableau contenant toutes les correspondances d’une expression régulière dans une chaîne.
Si ‘haystack’ ne correspond pas à l’expression régulière ‘pattern’, un tableau vide est renvoyé.
Si l’expression régulière comporte des groupes de capture (sous-motifs), la fonction fait correspondre la chaîne d’entrée au premier groupe de capture.
Syntaxe
haystack— Chaîne dont extraire les fragments.Stringpattern— Expression régulière pouvant contenir des groupes de capture.const String
Array(String)
Exemples
Extraire tous les nombres
Query
Response
Query
Response
extractAllGroupsHorizontal
Introduit dans : v20.5.0 Met en correspondance tous les groupes d’une chaîne à l’aide de l’expression régulière fournie et renvoie un tableau de tableaux, chaque tableau contenant toutes les captures d’un même groupe de capture, classées par numéro de groupe. Syntaxes— Chaîne d’entrée à partir de laquelle extraire.StringouFixedStringregexp— Expression régulière à faire correspondre.const Stringouconst FixedString
Array(Array(String))
Exemples
Exemple d’utilisation
Query
Response
extractGroups
Introduit dans : v20.5.0 Extrait les groupes de capture de la première sous-chaîne correspondant à une expression régulière. Pour extraire les groupes de toutes les correspondances, utilisezextractAllGroupsHorizontal ou extractAllGroupsVertical.
Syntaxe
s— Chaîne d’entrée dans laquelle extraire.StringouFixedStringregexp— Expression régulière. Doit contenir au moins un groupe de capture. Constante.const Stringouconst FixedString
1 à N, où N est le nombre de groupes de capture dans regexp) de la première correspondance. S’il n’y a pas de correspondance, renvoie un tableau vide. Array(String)
Exemples
Exemple d’utilisation
Query
Response
hasAllTokens
Introduit dans : v25.10.0 CommehasAnyTokens, mais renvoie 1 si tous les tokens de la chaîne ou du tableau needle correspondent à la chaîne input, et 0 sinon. Si input est une colonne, renvoie toutes les lignes qui satisfont cette condition.
La colonne
input doit avoir un index de texte défini pour des performances optimales.
Si aucun index de texte n’est défini, la fonction effectue un balayage exhaustif de la colonne, plusieurs ordres de grandeur plus lent qu’une recherche via l’index.- l’argument
input(toujours), et - l’argument
needle(s’il est fourni sous forme de String) à l’aide du tokenizer spécifié pour l’index de texte. Si aucun index de texte n’est défini pour la colonne, le tokenizersplitByNonAlphaest utilisé à la place. Si l’argumentneedleest de type Array(String), chaque élément du tableau est traité comme un token — aucune tokenisation supplémentaire n’a lieu. Si l’index de texte a une expression de preprocessor configurée, le preprocessor est appliqué àneedle(s’il est fourni en tant queString) avant la tokenisation. Si l’index de texte a une expression de postprocessor configurée, le postprocessor est appliqué aux tokens deneedleet à ceux deinput(c’est-à-dire aux deux après la tokenisation).
Lorsqu’un index de texte définit un preprocessor (par exemple
lowerUTF8), hasAllTokens l’applique à input et, lorsque needles est un String, à needles avant la tokenisation. Lorsque needles est un Array(String), ses éléments sont transmis tels quels et le preprocessor ne leur est pas appliqué.
Le preprocessor n’est appliqué que lors de l’utilisation de l’index de texte, de sorte que les résultats peuvent différer entre les requêtes qui utilisent l’index de texte et celles qui ne l’utilisent pas (par ex. SETTINGS use_skip_indexes = 0).
Cette incohérence est tolérée afin d’améliorer la facilité d’utilisation de la recherche en texte intégral.hasAllToken
Arguments
input— La colonne d’entrée.StringouFixedStringouNullable(String)ouNullable(FixedString)ouArray(String)ouArray(FixedString)ouArray(Nullable(String))ouArray(Nullable(FixedString))needles— Les tokens à rechercher.StringouArray(String)tokenizer— Le tokenizer à utiliser. Les arguments valides sontsplitByNonAlpha,splitByString,splitByRegexp,asciiCJK,chinese,icu('<locale>'),japanese,ngrams,sparseGramsetarray. Facultatif ; s’il n’est pas défini explicitement, la valeur par défaut estsplitByNonAlpha.const String
UInt8
Exemples
Utilisation de base avec une chaîne comme aiguille
Query
Response
Query
Response
tokens
Query
Response
Query
Response
Query
Query
Response
Query
Response
Query
Response
hasAnyTokens
Introduit dans : v25.10.0 Renvoie 1 si au moins un jeton dans la chaîne ou le tableauneedle correspond à la chaîne input, et 0 sinon. Si input est une colonne, renvoie toutes les lignes qui satisfont cette condition.
La colonne
input doit avoir un index de texte défini pour des performances optimales.
Si aucun index de texte n’est défini, la fonction effectue un balayage exhaustif de la colonne, ce qui est de plusieurs ordres de grandeur plus lent qu’une recherche via l’index.- l’argument
input(toujours), et - l’argument
needle(s’il est fourni sous forme de String) à l’aide du tokenizer spécifié pour l’index de texte. Si aucun index de texte n’est défini pour la colonne, le tokenizersplitByNonAlphaest utilisé à la place. Si l’argumentneedleest de type Array(String), chaque élément du tableau est traité comme un token — aucune tokenisation supplémentaire n’est effectuée. Si l’index de texte a une expression preprocessor configurée, le preprocessor est appliqué àneedle(s’il est fourni sous forme deString) avant la tokenisation. Si l’index de texte a une expression postprocessor configurée, le postprocessor est appliqué aux tokens deneedleet aux tokens deinput(c’est-à-dire aux deux après la tokenisation).
Lorsqu’un index de texte définit un preprocessor (par exemple
lowerUTF8), hasAnyTokens l’applique à input et, lorsque needles est une String, à needles avant la tokenisation. Lorsque needles est un Array(String), ses éléments sont transmis tels quels et le preprocessor ne leur est pas appliqué.
Le preprocessor n’est appliqué que lors de l’utilisation de l’index de texte. Les résultats peuvent donc différer entre les requêtes qui utilisent l’index de texte et celles qui ne l’utilisent pas (par ex. SETTINGS use_skip_indexes = 0).
Cette incohérence est tolérée afin d’améliorer la facilité d’utilisation de la recherche en texte intégral.hasAnyToken
Arguments
input— La colonne d’entrée.StringouFixedStringouNullable(String)ouNullable(FixedString)ouArray(String)ouArray(FixedString)ouArray(Nullable(String))ouArray(Nullable(FixedString))needles— Les tokens à rechercher.StringouArray(String)tokenizer— Le tokenizer à utiliser. Les arguments valides sontsplitByNonAlpha,splitByString,splitByRegexp,asciiCJK,chinese,icu('<locale>'),japanese,ngrams,sparseGramsetarray. Ce paramètre est facultatif ; s’il n’est pas défini explicitement, la valeur par défaut estsplitByNonAlpha.const String
1 s’il existe au moins une correspondance. 0 sinon. UInt8
Exemples
Utilisation de base avec une chaîne needle
Query
Response
Query
Response
tokens
Query
Response
Query
Query
Response
Query
Response
Query
Response
hasPhrase
Introduit dans : v26.4.0 Vérifie siinput contient tous les tokens de phrase dans un ordre consécutif.
La colonne
input doit avoir un index de texte défini pour des performances optimales.
Si aucun index de texte n’est défini, la fonction effectue un balayage exhaustif de la colonne, plusieurs ordres de grandeur plus lent qu’une recherche via l’index.input et phrase à l’aide du tokenizer spécifié pour l’index de texte.
Si aucun index de texte n’est défini pour la colonne, le tokenizer splitByNonAlpha est utilisé à la place — sauf si un tokenizer est fourni comme troisième argument facultatif.
L’argument tokenizer doit être l’un de splitByNonAlpha, splitByString, splitByRegexp, ngrams, asciiCJK ou icu.
Notez que splitByRegexp n’est pas pris en charge pour hasPhrase lorsque l’index de texte définit également un postprocessor.
Lorsqu’un index de texte définit un preprocessor (par exemple
lowerUTF8), hasPhrase l’applique à la fois à input et à phrase avant la tokenisation.
Le preprocessor n’est appliqué que lors de l’utilisation de l’index de texte ; les résultats peuvent donc différer entre les requêtes qui utilisent l’index de texte et celles qui ne l’utilisent pas (par ex. SETTINGS use_skip_indexes = 0).
Cette incohérence est tolérée afin d’améliorer la facilité d’utilisation de la recherche en texte intégral.hasToken, hasAnyTokens et hasAllTokens, hasPhrase exige que les tokens apparaissent dans le même ordre
et sans aucun token intermédiaire. Par exemple, hasPhrase('the quick brown fox', 'quick fox') renvoie 0
car “brown” apparaît entre “quick” et “fox”.
Syntaxe
matchPhrase
Arguments
input— La colonne d’entrée.StringouFixedStringphrase— Phrase à rechercher.const Stringtokenizer— Le tokenizer à utiliser. Facultatif,splitByNonAlphaest utilisé par défaut.const String
1 si la phrase est trouvée sous la forme d’une séquence consécutive de tokens, sinon 0. UInt8
Exemples
Correspondance de phrase
Query
Response
Query
Response
hasSubsequence
Introduit dans : v23.7.0 Vérifie si un motif est une sous-séquence d’une chaîne. Une sous-séquence d’une chaîne est une séquence qui peut être obtenue à partir d’une autre chaîne en supprimant certains caractères, ou aucun, sans modifier l’ordre des caractères restants. Syntaxehaystack— Chaîne dans laquelle rechercher la sous-séquence.Stringneedle— Sous-séquence à rechercher.String
1 si needle est une sous-séquence de haystack, 0 sinon. UInt8
Exemples
Vérification de base d’une sous-séquence
Query
Response
Query
Response
hasSubsequenceCaseInsensitive
Introduit dans : v23.7.0 CommehasSubsequence, mais effectue une recherche sans tenir compte de la casse.
Syntaxe
haystack— Chaîne dans laquelle effectuer la recherche.Stringneedle— Sous-séquence à rechercher.String
UInt8
Exemples
Exemple d’utilisation
Query
Response
hasSubsequenceCaseInsensitiveUTF8
Introduit dans : v23.7.0 CommehasSubsequenceUTF8, mais la recherche s’effectue sans tenir compte de la casse.
Syntaxe
haystack— chaîne encodée en UTF8 dans laquelle effectuer la recherche.Stringneedle— motif de sous-séquence encodé en UTF8 à rechercher.String
needle est une sous-séquence de haystack, sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
hasSubsequenceUTF8
Introduit dans : v23.7.0 CommehasSubsequence, mais suppose que haystack et needle sont des chaînes encodées en UTF-8.
Syntaxe
haystack— La chaîne dans laquelle effectuer la recherche.Stringneedle— Le motif à rechercher.String
1 si needle est une sous-séquence de haystack, sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
Query
Response
hasToken
Introduit dans : v20.1.0hasToken présente certains pièges lorsqu’il est utilisé pour des recherches dans des text indexes avec des tokenizers autres que splitByNonAlpha et/ou avec des expressions de prétraitement/post-traitement.
Nous recommandons d’utiliser hasAnyTokens et hasAllTokens à la place.[0-9A-Za-z_] (chiffres, caractères ASCII et underscore).
Syntaxe
haystack— Chaîne dans laquelle effectuer la recherche.Stringtoken— Token à rechercher.const String
1 si le token est trouvé, 0 sinon. UInt8
Exemples
Recherche de token
Query
Response
hasTokenCaseInsensitive
Introduit dans : v20.1.0 Effectue une recherche insensible à la casse du motif dans la chaîne source à l’aide de l’index tokenbf_v1.Cette fonction présente certains pièges avec les tokenizers non par défaut et les expressions de prétraitement ou de post-traitement.
Nous recommandons d’utiliser
hasAnyTokens et hasAllTokens à la place.- Aucun.
hasTokenCaseInsensitiveOrNull
Introduit dans : v23.1.0 Effectue une recherche insensible à la casse du motif dans la chaîne à l’aide de l’index tokenbf_v1. Renvoie NULL si le motif est mal formé.Cette fonction présente certains écueils avec des tokenizers non par défaut et des expressions de prétraitement ou de post-traitement.
Nous recommandons d’utiliser
hasAnyTokens et hasAllTokens à la place.- Aucun.
hasTokenOrNull
Introduit dans : v20.1.0 CommehasToken, mais renvoie NULL si le token est mal formé.
Syntaxe
haystack— Chaîne dans laquelle effectuer la recherche. Doit être constante.Stringtoken— Token à rechercher.const String
1 si le token est trouvé, 0 sinon, NULL si le token est mal formé. Nullable(UInt8)
Exemples
Exemple d’utilisation
Query
Response
highlight
Introduit dans : v26.4.0 Met en évidence les occurrences des termes de recherche dans une chaîne de texte en les entourant de balises HTML. La fonction effectue une recherche ASCII insensible à la casse. Si plusieurs termes de recherche se chevauchent ou se touchent dans le texte, les zones correspondantes sont fusionnées en une seule plage mise en évidence. Syntaxehaystack— Le texte dans lequel effectuer la recherche.StringouFixedStringneedles— Un tableau de termes de recherche à mettre en évidence.const Array(String)open_tag— La balise ouvrante à insérer avant chaque correspondance. Par défaut :<em>.const Stringclose_tag— La balise fermante à insérer après chaque correspondance. Par défaut :</em>.const String
String
Exemples
Mise en évidence simple
Query
Response
Query
Response
ilike
Introduit dans : v20.6.0 Commelike, mais effectue une recherche sans tenir compte de la casse. Prend en charge la clause ESCAPE facultative (voir like).
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.StringouFixedStringpattern— Motif LIKE auquel la chaîne doit correspondre.Stringescape_character— Chaîne facultative d’un seul caractère à utiliser comme caractère d’échappement à la place de\. Par défaut :\.String
1 si la chaîne correspond au motif LIKE (insensible à la casse), sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
like
Introduit dans : v1.1.0 Indique si la chaînehaystack correspond à l’expression LIKE pattern.
Une expression LIKE peut contenir des caractères ordinaires et les métacaractères suivants :
%indique un nombre arbitraire de caractères quelconques (y compris zéro caractère)._indique un seul caractère quelconque.\sert à échapper les littéraux%,_et\.
_ correspond au point de code Unicode ¥, qui est représenté en UTF-8 à l’aide de deux octets.
Si la chaîne ou l’expression LIKE ne sont pas en UTF-8 valide, le comportement est indéfini.
Aucune normalisation Unicode automatique n’est effectuée ; vous pouvez utiliser les fonctions normalizeUTF8* pour cela.
Pour faire correspondre les littéraux %, _ et \ (qui sont des métacaractères LIKE), faites-les précéder d’une barre oblique inverse : \%, \_ et \\.
La barre oblique inverse perd sa signification spéciale (c’est-à-dire qu’elle est interprétée littéralement) si elle précède un caractère autre que %, _ ou \.
ClickHouse exige que les barres obliques inverses dans les chaînes soient elles aussi échappées ; vous devez donc en pratique écrire
\\%, \\_ et \\\\.LIKE de la forme %needle%, la fonction est aussi rapide que la fonction position.
Toutes les autres expressions LIKE sont converties en interne en une expression régulière et exécutées avec des performances similaires à celles de la fonction match.
Clause ESCAPE
La clauseESCAPE facultative spécifie un caractère d’échappement personnalisé (qui doit être un seul caractère ASCII).
Lorsqu’il est défini, le caractère d’échappement personnalisé remplace la barre oblique inverse par défaut pour échapper les métacaractères % et _.
Le caractère d’échappement peut servir à échapper trois éléments : % (signe de pourcentage littéral), _ (trait de soulignement littéral) et lui-même (caractère d’échappement littéral).
Lorsqu’un caractère d’échappement personnalisé est utilisé, la barre oblique inverse n’a aucune signification particulière et est traité comme un caractère littéral.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.StringouFixedStringpattern— MotifLIKEauquel la chaîne est comparée. Peut contenir%(correspond à un nombre quelconque de caractères),_(correspond à un seul caractère) et\\comme caractère d’échappement.Stringescape_character— Chaîne facultative d’un seul caractère à utiliser comme caractère d’échappement à la place de\\. Par défaut :\\.String
1 si la chaîne correspond au motif LIKE, sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
Query
Response
Query
Response
Query
Response
locate
Introduit dans : v18.16.0 Commeposition, mais avec les arguments haystack et locate inversés.
Le comportement de cette fonction dépend de la version de ClickHouse :
- dans les versions < v24.3,
locateétait un alias de la fonctionpositionet acceptait les arguments(haystack, needle[, start_pos]). - dans les versions >= 24.3,
locateest une fonction distincte (pour une meilleure compatibilité avec MySQL) et accepte les arguments(needle, haystack[, start_pos]). Le comportement précédent peut être rétabli à l’aide du paramètrefunction_locate_has_mysql_compatible_argument_order = false.
needle— Sous-chaîne à rechercher.Stringhaystack— Chaîne dans laquelle la recherche est effectuée.StringouEnumstart_pos— Facultatif. Position (indexée à partir de 1) danshaystackà partir de laquelle la recherche commence.UInt
0 si elle ne l’est pas. UInt64
Exemples
Utilisation de base
Query
Response
match
Introduit dans : v1.1.0 Vérifie si une chaîne donnée correspond au motif d’expression régulière fourni. Cette fonction utilise la bibliothèque d’expressions régulières RE2. Veuillez consulter re2 pour connaître la syntaxe prise en charge. La correspondance repose sur l’hypothèse UTF-8 : par exemple,¥ utilise deux octets en interne, mais est traité comme un seul point de code lors de la correspondance.
L’expression régulière ne doit pas contenir d’octets NULL.
Si la chaîne d’entrée ou le motif ne sont pas en UTF-8 valide, le comportement est indéfini.
Contrairement au comportement par défaut de re2, . correspond aux sauts de ligne. Pour désactiver cela, faites précéder le motif de (?-s).
Le motif n’est pas ancré. Pour faire correspondre la chaîne entière, ancrez vous-même le motif à l’aide de ^ et $.
Si vous souhaitez simplement rechercher des sous-chaînes, vous pouvez utiliser à la place les fonctions like ou position, qui sont bien plus rapides que cette fonction.
Syntaxe d’opérateur alternative : haystack REGEXP pattern ou haystack ~ pattern (style PostgreSQL).
Syntaxe
REGEXP_MATCHES
Arguments
haystack— Chaîne dans laquelle le motif est recherché.Stringpattern— Motif d’expression régulière. Peut être une constante ou provenir d’un colonne.String
1 si le motif correspond, 0 sinon. UInt8
Exemples
Correspondance simple de motifs
Query
Response
Query
Response
Query
Response
matchCaseInsensitive
Introduit dans : v26.8.0 Similaire àmatch, mais effectue une correspondance sans tenir compte de la casse.
Cette fonction utilise la bibliothèque d’expressions régulières RE2. Veuillez consulter re2 pour connaître la syntaxe prise en charge.
Syntaxe d’opérateur alternative : haystack ~* pattern (style PostgreSQL).
Syntaxe
haystack— Chaîne dans laquelle le motif est recherché.Stringpattern— Motif d’expression régulière. Peut être une constante ou provenir d’un colonne.String
1 si le motif correspond sans tenir compte de la casse, 0 sinon. UInt8
Exemples
Exemple d’utilisation
Query
Response
multiFuzzyMatchAllIndices
Introduit dans : v20.1.0 CommemultiFuzzyMatchAny, mais renvoie le tableau de tous les indices correspondant, dans un ordre quelconque, à la chaîne recherchée avec une distance d’édition constante.
Syntaxe
haystack— Chaîne dans laquelle effectuer la recherche.Stringdistance— Distance d’édition maximale pour la correspondance approximative.UInt8pattern— Tableau de motifs à rechercher.Array(String)
haystack selon la distance d’édition spécifiée, dans n’importe quel ordre. Renvoie un tableau vide si aucune correspondance n’est trouvée. Array(UInt64)
Exemples
Exemple d’utilisation
Query
Response
multiFuzzyMatchAny
Introduit dans : v20.1.0 CommemultiMatchAny, mais renvoie 1 si un motif correspond à la chaîne recherchée pour une distance d’édition constante.
Cette fonction s’appuie sur la fonctionnalité expérimentale de la bibliothèque hyperscan et peut être lente dans certains cas limites.
Les performances dépendent de la valeur de la distance d’édition et des motifs utilisés, mais restent toujours inférieures à celles des variantes non floues.
La famille de fonctions
multiFuzzyMatch*() ne prend pas en charge les expressions régulières UTF-8 (elles les traitent comme une séquence d’octets) en raison des limitations de hyperscan.haystack— Chaîne dans laquelle la recherche est effectuée.Stringdistance— Distance d’édition maximale pour la correspondance approximative.UInt8pattern— Facultatif. Tableau de motifs à comparer.Array(String)
1 si un motif correspond au haystack dans la limite de la distance d’édition spécifiée, sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
multiFuzzyMatchAnyIndex
Introduite dans : v20.1.0 CommemultiFuzzyMatchAny, mais renvoie un indice correspondant à la chaîne dans une distance d’édition constante.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.Stringdistance— Distance d’édition maximale pour la correspondance approximative.UInt8pattern— Tableau de motifs à mettre en correspondance.Array(String)
haystack dans la limite de la distance d’édition spécifiée ; sinon, 0. UInt64
Exemples
Exemple d’utilisation
Query
Response
multiMatchAllIndices
Introduit dans : v20.1.0 CommemultiMatchAny, mais renvoie le tableau de tous les indices qui correspondent à la chaîne analysée, dans n’importe quel ordre.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.Stringpattern— Expressions régulières à rechercher.String
haystack, dans n’importe quel ordre. Renvoie un tableau vide si aucune correspondance n’est trouvée. Array(UInt64)
Exemples
Exemple d’utilisation
Query
Response
multiMatchAny
Introduit dans : v20.1.0 Vérifie si au moins un de plusieurs motifs d’expression régulière correspond à la chaîne recherchée. Si vous souhaitez uniquement rechercher plusieurs sous-chaînes dans une chaîne, vous pouvez utiliser la fonctionmultiSearchAny à la place - elle est bien plus rapide que celle-ci.
Syntaxe
haystack— Chaîne dans laquelle les motifs sont recherchés.Stringpattern1[, pattern2, ...]— Tableau contenant un ou plusieurs motifs d’expression régulière.Array(String)
1 si l’un des motifs correspond, 0 sinon. UInt8
Exemples
Correspondance avec plusieurs motifs
Query
Response
Query
Response
multiMatchAnyIndex
Introduit dans : v20.1.0 CommemultiMatchAny, mais renvoie l’un des indices correspondant à la chaîne haystack.
Syntaxe
haystack— Chaîne haystack dans laquelle effectuer la recherche.Stringpattern— Motifs à mettre en correspondance.Array(String)
UInt64
Exemples
Exemple d’utilisation
Query
Response
multiSearchAllPositions
Introduit dans : v20.1.0 Commeposition, mais renvoie un tableau de positions (en octets, à partir de 1) pour plusieurs sous-chaînes needle dans une chaîne haystack.
Toutes les fonctions multiSearch*() prennent uniquement en charge jusqu’à 2^8 needles.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.Stringneedle1[, needle2, ...]— Tableau d’une ou plusieurs sous-chaînes à rechercher.Array(String)
0 si elle ne l’a pas été. Array(UInt64)
Exemples
Recherche de plusieurs sous-chaînes
Query
Response
multiSearchAllPositionsCaseInsensitive
Introduit dans : v20.1.0 CommemultiSearchAllPositions, mais sans tenir compte de la casse.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.Stringneedle1[, needle2, ...]— Tableau d’une ou plusieurs sous-chaînes à rechercher.Array(String)
0 si la sous-chaîne n’a pas été trouvée. Array(UInt64)
Exemples
Recherche multiple insensible à la casse
Query
Response
multiSearchAllPositionsCaseInsensitiveUTF8
Introduit dans : v20.1.0 Identique àmultiSearchAllPositionsUTF8, mais sans tenir compte de la casse.
Syntaxe
haystack— chaîne encodée en UTF-8 dans laquelle la recherche est effectuée.Stringneedle— sous-chaînes encodées en UTF-8 à rechercher.Array(String)
Array
Exemples
Recherche UTF-8 insensible à la casse
Query
Response
multiSearchAllPositionsUTF8
Introduit dans : v20.1.0 CommemultiSearchAllPositions, mais suppose que haystack et les sous-chaînes needle sont des chaînes encodées en UTF-8.
Syntaxe
haystack— Chaîne encodée en UTF-8 dans laquelle la recherche est effectuée.Stringneedle1[, needle2, ...]— Tableau de sous-chaînes encodées en UTF-8 à rechercher.Array(String)
0 si la sous-chaîne n’a pas été trouvée. Array
Exemples
Recherche multiple en UTF-8
Query
Response
multiSearchAny
Introduit dans : v20.1.0 Vérifie si la chaîne haystack contient au moins une des chaînes needle. Les fonctionsmultiSearchAnyCaseInsensitive, multiSearchAnyUTF8 et multiSearchAnyCaseInsensitiveUTF8 fournissent des variantes insensibles à la casse et/ou en UTF-8 de cette fonction.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.Stringneedle1[, needle2, ...]— Tableau de sous-chaînes à rechercher.Array(String)
1 s’il y a au moins une correspondance, sinon 0. UInt8
Exemples
Recherche d’au moins une correspondance
Query
Response
multiSearchAnyCaseInsensitive
Introduit dans : v20.1.0 Comme multiSearchAny, mais sans tenir compte de la casse. Syntaxehaystack— Chaîne dans laquelle la recherche est effectuée.Stringneedle— Sous-chaînes à rechercher.Array(String)
1 s’il existe au moins une correspondance insensible à la casse, sinon 0. UInt8
Exemples
Recherche insensible à la casse
Query
Response
multiSearchAnyCaseInsensitiveUTF8
Introduit dans : v20.1.0 Comme multiSearchAnyUTF8, mais sans tenir compte de la casse. Syntaxehaystack— chaîne UTF-8 dans laquelle la recherche est effectuée.Stringneedle— needles UTF-8 à rechercher.Array(String)
1 s’il existe au moins une correspondance insensible à la casse, sinon 0. UInt8
Exemples
Étant donné la chaîne UTF-8 ‘Здравствуйте’, vérifiez si le caractère ‘з’ (en minuscule) est présent
Query
Response
multiSearchAnyUTF8
Introduit dans : v20.1.0 Semblable à multiSearchAny, mais suppose quehaystack et les sous-chaînes needle sont encodées en UTF-8.
Syntaxe
haystack— chaîne UTF-8 dans laquelle la recherche est effectuée.Stringneedle— sous-chaînes UTF-8 à rechercher.Array(String)
1 s’il y a au moins une correspondance, sinon 0. UInt8
Exemples
Étant donné ‘你好,世界’ (‘Hello, world’) comme chaîne UTF-8, vérifiez si la chaîne contient les caractères 你 ou 界
Query
Response
multiSearchFirstIndex
Introduit dans : v20.1.0 Recherche plusieurs needles dans une chaîne haystack (sensible à la casse) et renvoie l’indice, à partir de 1, du premier needle trouvé. Syntaxehaystack— La chaîne haystack dans laquelle effectuer la recherche.Stringneedles— Tableau de needles à rechercher.Array(String)
needles) du premier needle trouvé dans haystack. Renvoie 0 si aucun needle n’est trouvé. La recherche est sensible à la casse. UInt64
Exemples
Exemple d’utilisation
Query
Response
Query
Response
Query
Response
multiSearchFirstIndexCaseInsensitive
Introduit dans : v20.1.0 Renvoie l’indicei (à partir de 1) du needle_i trouvé le plus à gauche dans la chaîne haystack, et 0 sinon.
Sans tenir compte de la casse.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.Stringneedle— Sous-chaînes à rechercher.Array(String)
needle trouvée la plus à gauche. Sinon, renvoie 0 si aucune correspondance n’a été trouvée. UInt8
Exemples
Exemple d’utilisation
Query
Response
multiSearchFirstIndexCaseInsensitiveUTF8
Introduit dans : v20.1.0 Recherche plusieurs needles dans une chaîne haystack, sans tenir compte de la casse avec prise en charge de l’encodage UTF-8, et renvoie l’indice, à partir de 1, du premier needle trouvé. Syntaxehaystack— La chaîne haystack dans laquelle effectuer la recherche.Stringneedles— Tableau de needles à rechercher.Array(String)
needles) du premier needle trouvé dans haystack. Renvoie 0 si aucun needle n’est trouvé. La recherche est insensible à la casse et respecte l’encodage des caractères UTF-8. UInt64
Exemples
Exemple d’utilisation
Query
Response
Query
Response
Query
Response
multiSearchFirstIndexUTF8
Introduit dans : v20.1.0 Renvoie l’indexi (à partir de 1) du needle_i trouvé le plus à gauche dans la chaîne haystack, et 0 sinon.
Suppose que haystack et needle sont des chaînes encodées en UTF-8.
Syntaxe
haystack— chaîne UTF-8 dans laquelle la recherche est effectuée.Stringneedle— tableau de sous-chaînes UTF-8 à rechercher.Array(String)
needle trouvée la plus à gauche. Sinon, 0 s’il n’y a aucune correspondance. UInt8
Exemples
Exemple d’utilisation
Query
Response
multiSearchFirstPosition
Introduit dans : v20.1.0 Commeposition, mais renvoie le décalage le plus à gauche dans une chaîne haystack qui correspond à l’une des chaînes needle.
Les fonctions multiSearchFirstPositionCaseInsensitive, multiSearchFirstPositionUTF8 et multiSearchFirstPositionCaseInsensitiveUTF8 fournissent des variantes insensibles à la casse et/ou UTF-8 de cette fonction.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.Stringneedle1[, needle2, ...]— Tableau d’une ou plusieurs sous-chaînes à rechercher.Array(String)
haystack qui correspond à l’une des chaînes needle, ou 0 si aucune correspondance n’est trouvée. UInt64
Exemples
Recherche de la première position
Query
Response
multiSearchFirstPositionCaseInsensitive
Introduit dans : v20.1.0 Comme multiSearchFirstPosition, mais sans tenir compte de la casse. Syntaxehaystack— Chaîne dans laquelle la recherche est effectuée.Stringneedle— Tableau de sous-chaînes à rechercher.Array(String)
haystack qui correspond à l’une des chaînes needle. Renvoie 0 si aucune correspondance n’est trouvée. UInt64
Exemples
Première position sans distinction de casse
Query
Response
multiSearchFirstPositionCaseInsensitiveUTF8
Introduit dans : v20.1.0 Comme multiSearchFirstPosition, mais considèrehaystack et needle comme des chaînes UTF-8 et ne tient pas compte de la casse.
Syntaxe
haystack— chaîne UTF-8 dans laquelle la recherche est effectuée.Stringneedle— tableau de sous-chaînes UTF-8 à rechercher.Array(String)
haystack qui correspond à l’une des chaînes needle, sans tenir compte de la casse. Renvoie 0 s’il n’y a aucune correspondance. UInt64
Exemples
Trouver la position la plus à gauche dans la chaîne UTF-8 ‘Здравствуй, мир’ (‘Hello, world’) qui correspond à l’une des sous-chaînes recherchées
Query
Response
multiSearchFirstPositionUTF8
Introduit dans : v20.1.0 Semblable à multiSearchFirstPosition, mais considèrehaystack et needle comme des chaînes UTF-8.
Syntaxe
haystack— chaîne UTF-8 dans laquelle effectuer la recherche.Stringneedle— tableau de sous-chaînes UTF-8 à rechercher.Array(String)
haystack correspondant à l’une des chaînes needle. Renvoie 0 s’il n’y a aucune correspondance. UInt64
Exemples
Trouver la position la plus à gauche dans la chaîne UTF-8 ‘Здравствуй, мир’ (‘Bonjour, monde’) qui correspond à l’une des chaînes needle données
Query
Response
ngramDistance
Introduit dans : v20.1.0 Calcule la distance 4-gramme entre deux chaînes. Pour ce faire, elle calcule la différence symétrique entre deux multiensembles de 4-grammes et la normalise par la somme de leurs cardinalités. Plus la valeur renvoyée est faible, plus les chaînes sont similaires. Pour une recherche insensible à la casse et/ou au format UTF8, utilisez les fonctionsngramDistanceCaseInsensitive, ngramDistanceUTF8, ngramDistanceCaseInsensitiveUTF8.
Syntaxe
0 et 1. Plus la valeur renvoyée est faible, plus les chaînes sont similaires. Float32
Exemples
Calcul de la distance de 4-grammes
Query
Response
ngramDistanceCaseInsensitive
Introduite dans : v20.1.0 Fournit une variante dengramDistance insensible à la casse.
Calcule la distance de 4-grammes entre deux chaînes de caractères, sans tenir compte de la casse.
Plus la valeur renvoyée est faible, plus les chaînes sont similaires.
Syntaxe
Float32 compris entre 0 et 1. Float32
Exemples
Distance de 4-grammes insensible à la casse
Query
Response
ngramDistanceCaseInsensitiveUTF8
Introduit dans : v20.1.0 Fournit une variante UTF-8 insensible à la casse dengramDistance.
Suppose que les chaînes needle et haystack sont encodées en UTF-8 et ignore la casse.
Calcule la distance de 3-grammes entre deux chaînes UTF-8, sans tenir compte de la casse.
Plus la valeur renvoyée est faible, plus les chaînes se ressemblent.
Syntaxe
haystack— Première chaîne de comparaison codée en UTF-8.Stringneedle— Deuxième chaîne de comparaison codée en UTF-8.String
0 et 1. Float32
Exemples
Distance de 3-grammes UTF-8 insensible à la casse
Query
Response
ngramDistanceUTF8
Introduit dans : v20.1.0 Fournit une variante UTF-8 dengramDistance.
Suppose que les chaînes needle et haystack sont codées en UTF-8.
Calcule la distance de 3-grammes entre deux chaînes UTF-8.
Plus la valeur renvoyée est faible, plus les chaînes sont similaires.
Syntaxe
haystack— Première chaîne de comparaison codée en UTF-8.Stringneedle— Deuxième chaîne de comparaison codée en UTF-8.String
0 et 1. Float32
Exemples
Distance de 3-grammes UTF-8
Query
Response
ngramSearch
Introduit dans : v20.1.0 Vérifie si la distance de 4-grammes entre deux chaînes est inférieure ou égale à un seuil donné. Pour une recherche insensible à la casse et/ou au format UTF8, utilisez les fonctionsngramSearchCaseInsensitive, ngramSearchUTF8, ngramSearchCaseInsensitiveUTF8.
Syntaxe
1 si la distance de 4-grammes entre les chaînes est inférieure ou égale à un seuil (1.0 par défaut), sinon 0. UInt8
Exemples
Recherche par 4-grammes
Query
Response
ngramSearchCaseInsensitive
Introduite dans : v20.1.0 Fournit une variante insensible à la casse dengramSearch.
Calcule la différence non symétrique entre la chaîne needle et la chaîne haystack, c’est-à-dire le nombre de n-grammes de needle moins le nombre de n-grammes communs, normalisé par le nombre de n-grammes de needle.
Vérifie si la distance de 4-grammes entre deux chaînes est inférieure ou égale à un seuil donné, sans tenir compte de la casse.
Syntaxe
1 si la distance en 4-grammes entre les chaînes est inférieure ou égale à un seuil (1.0 par défaut), sinon 0. UInt8
Exemples
Recherche insensible à la casse à l’aide de 4-grammes
Query
Response
ngramSearchCaseInsensitiveUTF8
Introduit dans : v20.1.0 Fournit une variante UTF-8 insensible à la casse dengramSearch.
Considère que haystack et needle sont des chaînes UTF-8 et ignore la casse.
Vérifie si la distance de 3-grammes entre deux chaînes UTF-8 est inférieure ou égale à un seuil donné, sans tenir compte de la casse.
Syntaxe
1 si la distance de 3-grammes entre les chaînes est inférieure ou égale à un seuil (1.0 par défaut), sinon 0. UInt8
Exemples
Recherche UTF-8 insensible à la casse à l’aide de 3-grammes
Query
Response
ngramSearchUTF8
Introduit dans : v20.1.0 Fournit une variante UTF-8 dengramSearch.
Suppose que haystack et needle sont des chaînes en UTF-8.
Vérifie si la distance 3-grammes entre deux chaînes en UTF-8 est inférieure ou égale à un seuil donné.
Syntaxe
1 si la distance de 3-grammes entre les chaînes est inférieure ou égale à un seuil (1.0 par défaut), sinon 0. UInt8
Exemples
Recherche UTF-8 avec des 3-grammes
Query
Response
notILike
Introduit dans : v20.6.0 Vérifie si une chaîne ne correspond pas à un motif, sans tenir compte de la casse. Le motif peut contenir les caractères spéciaux% et _ pour la correspondance SQL LIKE. Prend en charge la clause facultative ESCAPE (voir like).
Syntaxe
haystack— La chaîne d’entrée dans laquelle effectuer la recherche.StringouFixedStringpattern— Le motif SQL LIKE à appliquer.%correspond à un nombre quelconque de caractères (y compris zéro),_correspond à exactement un caractère.Stringescape_character— Chaîne facultative d’un seul caractère à utiliser comme caractère d’échappement à la place de\. Par défaut :\.String
1 si la chaîne ne correspond pas au motif (insensible à la casse), sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
notLike
Introduit dans : v1.1.0 Semblable àlike, mais en inverse le résultat. Prend en charge la clause ESCAPE facultative (voir like).
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.StringouFixedStringpattern— Motif LIKE auquel la chaîne est comparée.Stringescape_character— Chaîne facultative d’un seul caractère à utiliser comme caractère d’échappement à la place de\. Par défaut :\.String
1 si la chaîne ne correspond pas au motif LIKE, sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
Query
Response
notMatch
Introduit dans : v26.8.0 Similaire àmatch, mais inverse le résultat : vérifie que la chaîne ne correspond pas au motif d’expression régulière.
Cette fonction utilise la bibliothèque d’expressions régulières RE2. Veuillez consulter re2 pour connaître la syntaxe prise en charge.
Syntaxe d’opérateur alternative : haystack !~ pattern (style PostgreSQL).
Syntaxe
haystack— Chaîne dans laquelle le motif est recherché.Stringpattern— Motif d’expression régulière. Peut être une constante ou provenir d’un colonne.String
0 si le motif correspond, 1 sinon. UInt8
Exemples
Exemple d’utilisation
Query
Response
notMatchCaseInsensitive
Introduit dans : v26.8.0 Similaire àmatchCaseInsensitive, mais inverse le résultat : vérifie que la chaîne ne correspond pas au motif d’expression régulière sans tenir compte de la casse.
Cette fonction utilise la bibliothèque d’expressions régulières RE2. Veuillez consulter re2 pour connaître la syntaxe prise en charge.
Syntaxe d’opérateur alternative : haystack !~* pattern (style PostgreSQL).
Syntaxe
haystack— Chaîne dans laquelle le motif est recherché.Stringpattern— Motif d’expression régulière. Peut être une constante ou provenir d’un colonne.String
0 si le motif correspond sans tenir compte de la casse, 1 sinon. UInt8
Exemples
Exemple d’utilisation
Query
Response
position
Introduit dans : v1.1.0 Renvoie la position (en octets, à partir de 1) d’une sous-chaîneneedle dans une chaîne haystack.
Si la sous-chaîne needle est vide, les règles suivantes s’appliquent :
- si aucun
start_posn’est spécifié : renvoyer1 - si
start_pos = 0: renvoyer1 - si
start_pos >= 1etstart_pos <= length(haystack) + 1: renvoyerstart_pos - sinon : renvoyer
0
locate, positionCaseInsensitive, positionUTF8 et positionCaseInsensitiveUTF8.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.StringouEnumneedle— Sous-chaîne à rechercher.Stringstart_pos— Position danshaystackà partir de laquelle la recherche commence (indexation à partir de 1). Facultatif.UInt
0 si la sous-chaîne n’est pas trouvée. UInt64
Exemples
Utilisation de base
Query
Response
Query
Response
Query
Response
Query
Response
positionCaseInsensitive
Introduit dans : v1.1.0 Commeposition, mais insensible à la casse.
Syntaxe
instr
Arguments
haystack— Chaîne dans laquelle la recherche est effectuée.StringouEnumneedle— Sous-chaîne à rechercher.Stringstart_pos— Facultatif. Position (à partir de 1) danshaystackà laquelle la recherche commence.UInt*
0. UInt64
Exemples
Recherche insensible à la casse
Query
Response
positionCaseInsensitiveUTF8
Introduit dans : v1.1.0 Semblable àpositionUTF8, mais effectue la recherche sans tenir compte de la casse.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.StringouEnumneedle— Sous-chaîne à rechercher.Stringstart_pos— Facultatif. Position (à partir de 1) danshaystackà laquelle la recherche commence.UInt*
0 si elle n’a pas été trouvée. UInt64
Exemples
Recherche UTF-8 insensible à la casse
Query
Response
positionUTF8
Introduit dans : v1.1.0 Commeposition, mais suppose que haystack et needle sont des chaînes codées en UTF-8.
Syntaxe
haystack— Chaîne dans laquelle la recherche est effectuée.StringouEnumneedle— Sous-chaîne à rechercher.Stringstart_pos— Facultatif. Position (indexée à partir de 1) danshaystackà partir de laquelle la recherche commence.UInt*
0. UInt64
Exemples
Comptage des caractères UTF-8
Query
Response