大文字と小文字を区別しない検索は、英語の小文字・大文字の規則に従います。たとえば、英語では小文字の
i を大文字にすると
I になりますが、トルコ語では İ になります。そのため、英語以外の言語では期待どおりの結果にならない場合があります。haystack と呼びます) と検索文字列 (このセクションでは needle と呼びます) が単一バイトでエンコードされたテキストであることも前提としています。この前提が
満たされていない場合でも、例外はスローされず、結果は未定義です。UTF-8 でエンコードされた文字列の検索は、通常、別の関数
バリアントとして提供されます。同様に、UTF-8 関数バリアントを使用していても、入力文字列が UTF-8 でエンコードされたテキストでない場合、例外はスローされず、
結果は未定義です。なお、自動的な Unicode 正規化は行われませんが、必要に応じて
normalizeUTF8*() 関数を使用できます。
一般的な文字列関数 と 文字列内置換関数 については、別途説明しています。
以下のドキュメントは、
system.functions システムテーブルから生成されています。countMatches
バージョン依存の動作この関数の動作は、ClickHouse のバージョンによって異なります。
- バージョン < v25.6 では、pattern が受理される場合でも、最初の空一致でカウントを停止します。
- バージョン >= 25.6 では、空一致が発生しても関数は実行を継続します。従来の動作は、setting
count_matches_stop_at_empty_match = trueを使用して復元できます。
UInt64
例
数字の並びの数を数える
Query
Response
countMatchesCaseInsensitive
countMatches と同様ですが、大文字と小文字を区別しないマッチングを実行します。
構文
haystack— 検索対象の文字列です。Stringpattern— 正規表現パターンです。const String
UInt64
例
大文字と小文字を区別しない場合のカウント
Query
Response
countSubstrings
haystack に部分文字列 needle が含まれる回数を返します。
構文
haystack— 検索対象の文字列。String または Enum。 -needle— 検索する部分文字列。String。 -start_pos—haystack内で検索を開始する位置 (1始まり) 。UInt。省略可能。
UInt64
例
使用例
Query
Response
Query
Response
countSubstringsCaseInsensitive
countSubstrings と同様ですが、大文字と小文字を区別せずにカウントします。
構文
haystack— 検索対象の文字列。StringまたはEnumneedle— 検索する部分文字列。Stringstart_pos— 任意。haystack内で検索を開始する位置 (1始まり) 。UInt*
UInt64
例
使用例
Query
Response
Query
Response
countSubstringsCaseInsensitiveUTF8
countSubstrings と同様ですが、大文字と小文字を区別せずにカウントし、haystack は UTF-8 文字列であることを前提とします。
構文
haystack— 検索対象の UTF-8 文字列。StringまたはEnumneedle— 検索する部分文字列。Stringstart_pos— 任意。haystack内で検索を開始する位置 (1始まり) 。UInt*
haystack 内に needle が出現する回数を返します。UInt64
例
使用例
Query
Response
Query
Response
extract
haystack— 抽出元の文字列。Stringpattern— 通常はキャプチャグループを含む正規表現。const String
String
例
メールアドレスからドメインを抽出
Query
Response
Query
Response
extractAll
extract と似ていますが、文字列内で正規表現に一致するすべての部分を配列として返します。
‘haystack’ が ‘pattern’ の正規表現に一致しない場合は、空の配列を返します。
正規表現にキャプチャグループ (サブパターン) がある場合、この関数は入力文字列に対して最初のキャプチャグループを照合します。
構文
haystack— 断片を抽出する対象の文字列です。Stringpattern— 正規表現です。キャプチャグループを含めることもできます。const String
Array(String)
例
すべての数値を抽出
Query
Response
Query
Response
extractAllGroupsHorizontal
s— 抽出元の入力文字列。StringまたはFixedStringregexp— マッチに使用する正規表現。const Stringまたはconst FixedString
Array(Array(String))
例
使用例
Query
Response
extractGroups
extractAllGroupsHorizontal または extractAllGroupsVertical を使用します。
構文
s— 抽出元の入力文字列。StringまたはFixedStringregexp— 正規表現。少なくとも 1 つのキャプチャグループを含む必要があります。定数。const Stringまたはconst FixedString
1 から N。N は regexp 内のキャプチャグループ数) の配列を返します。一致しない場合は、空の配列を返します。Array(String)
例
使用例
Query
Response
hasAllTokens
hasAnyTokens と同様ですが、needle 文字列またはArrayに含まれるすべてのトークンが input 文字列と一致する場合は1を、それ以外の場合は0を返します。input がカラムの場合、この条件を満たすすべての行を返します。
最適なパフォーマンスを得るには、カラム
input に テキスト索引 を定義しておく必要があります。
テキスト索引が定義されていない場合、この関数はカラム全体を総当たりでスキャンするため、索引ルックアップと比べて桁違いに低速になります。input引数 (必須) とneedle引数 (String として指定された場合) は、 テキスト索引で指定されたトークナイザーを使用して処理されます。 カラムにテキスト索引が定義されていない場合は、代わりにsplitByNonAlphaトークナイザーが使用されます。needle引数の型が Array(String) の場合、配列の各要素はトークンとして扱われ、追加のトークン化は行われません。
hasAllToken
引数
input— 入力カラムです。StringまたはFixedStringまたはArray(String)またはArray(FixedString)needles— 検索するトークン。StringまたはArray(String)tokenizer— 使用するトークナイザー。有効な引数はsplitByNonAlpha、splitByString、asciiCJK、ngrams、sparseGrams、arrayです。省略可能で、明示的に設定されていない場合のデフォルト値はsplitByNonAlphaです。const String
UInt8
例
文字列のneedleを使った基本的な使い方
Query
Response
Query
Response
tokens 関数を使用してneedleを生成する
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasAnyTokens
needle の文字列またはArrayの中に少なくとも1つのtokenが input 文字列と一致する場合は1を、それ以外の場合は0を返します。input がカラムの場合、この条件を満たすすべての行を返します。
最適なパフォーマンスを得るには、カラム
input に テキスト索引 を定義する必要があります。
テキスト索引が定義されていない場合、この関数はカラム全体を総当たりでスキャンします。これは索引ルックアップに比べて桁違いに低速です。input引数 (常に必要) とneedle引数 (String として指定された場合) は、 テキスト索引で指定されたトークナイザーを使用して処理されます。 カラムにテキスト索引が定義されていない場合は、代わりにsplitByNonAlphaトークナイザーが使用されます。needle引数の型が Array(String) の場合、配列の各要素はトークンとして扱われ、追加のトークン化は行われません。
hasAnyToken
引数
input— 入力カラムです。StringorFixedStringorNullable(String)orNullable(FixedString)orArray(String)orArray(FixedString)orArray(Nullable(String))orArray(Nullable(FixedString))needles— 検索対象のトークン。StringまたはArray(String)tokenizer— 使用するトークナイザーです。有効な引数はsplitByNonAlpha、splitByString、asciiCJK、ngrams、sparseGrams、arrayです。省略可能で、明示的に設定しない場合のデフォルトはsplitByNonAlphaです。const String
1を、それ以外の場合は0を返します。UInt8
例
文字列のneedleを使った基本的な使い方
Query
Response
Query
Response
tokens 関数を使用してneedleを生成する
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasPhrase
input 引数と phrase 引数の両方をトークン化します。
トークナイザー引数には、splitByNonAlpha、splitByString、ngrams、asciiCJK のいずれかを指定する必要があります。
トークナイザーが指定されていない場合は、デフォルトで splitByNonAlpha トークナイザーが使用されます。
hasToken、hasAnyTokens、hasAllTokens とは異なり、hasPhrase では token が同じ順序で現れ、
その間に別の token が挟まらないことが必要です。たとえば、hasPhrase('the quick brown fox', 'quick fox') は 0 を返します。
これは、“quick” と “fox” の間に “brown” があるためです。
構文
matchPhrase
引数
input— 入力カラム。StringまたはFixedStringphrase— 検索対象のフレーズ。const Stringtokenizer— 使用するトークナイザー。省略可能で、デフォルト値はsplitByNonAlphaです。const String
1、それ以外の場合は 0 を返します。UInt8
例
フレーズマッチ
Query
Response
Query
Response
hasSubsequence
needle が haystack の部分列であれば 1、そうでなければ 0 を返します。UInt8
例
基本的な部分列チェック
Query
Response
Query
Response
hasSubsequenceCaseInsensitive
hasSubsequence と同様ですが、大文字と小文字を区別せずに検索します。
構文
needle が haystack の部分列である場合は 1、そうでない場合は 0 を返します。UInt8
例
使用例
Query
Response
hasSubsequenceCaseInsensitiveUTF8
hasSubsequenceUTF8 と同様ですが、大文字と小文字を区別せずに検索します。
構文
needle が haystack の部分列であれば 1、そうでなければ 0 を返します。UInt8
例
使用例
Query
Response
hasSubsequenceUTF8
hasSubsequence と同様ですが、haystack と needle は UTF-8 でエンコードされた文字列であることを前提としています。
構文
needle が haystack の部分列であれば 1、そうでなければ 0 を返します。UInt8
例
使用例
Query
Response
Query
Response
hasToken
[0-9A-Za-z_] (数字、ASCII 文字、アンダースコア) からなる、可能な限り最長の部分列として定義されます。
構文
haystack— 検索対象の文字列。Stringtoken— 検索するトークン。const String
1、見つからなかった場合は 0 を返します。UInt8
例
トークン検索
Query
Response
hasTokenCaseInsensitive
- なし。
hasTokenCaseInsensitiveOrNull
- なし。
hasTokenOrNull
hasToken と同様ですが、token の形式が不正な場合は NULL を返します。
構文
haystack— 検索対象の文字列。定数である必要があります。Stringtoken— 検索するトークン。const String
1、見つからない場合は 0、token の形式が不正な場合は NULL を返します。Nullable(UInt8)
例
使用例
Query
Response
highlight
haystack— 検索対象のテキストです。StringまたはFixedStringneedles— 強調表示する検索語の配列です。const Array(String)open_tag— 各一致箇所の前に挿入する開始タグです。既定値:<em>。const Stringclose_tag— 各一致箇所の後に挿入する終了タグです。既定値:</em>。const String
String
例
基本的なハイライト
Query
Response
Query
Response
ilike
like と同様ですが、大文字と小文字を区別せずに検索します。
構文
haystack— 検索対象の文字列。StringまたはFixedStringpattern— 照合する LIKE パターン。String
1、それ以外の場合は 0 を返します。UInt8
例
使用例
Query
Response
like
haystack が LIKE 式 pattern に一致するかどうかを返します。
LIKE 式には、通常の文字に加えて、次のメタ記号を含めることができます。
%は、任意の文字列 (0 文字を含む) を表します。_は、任意の 1 文字を表します。\は、%、_、\をリテラルとして扱うためのエスケープ文字です。
_ は UTF-8 では 2 バイトで表現される Unicode コードポイント ¥ に一致します。
haystack または LIKE 式が有効な UTF-8 でない場合の動作は未定義です。
Unicode の正規化は自動では行われないため、必要に応じて normalizeUTF8* 関数を使用してください。
リテラルの %、_、\ (これらは LIKE のメタ文字です) に一致させるには、それぞれの前にバックスラッシュを付けます: \%、\_、\\。
バックスラッシュの直後の文字が %、_、\ 以外の場合、バックスラッシュは特別な意味を失い、リテラルとして解釈されます。
ClickHouse では、文字列内のバックスラッシュ自体もエスケープする必要があるため、実際には
\\%、\\_、\\\\ と記述する必要があります。%needle% 形式の LIKE 式では、この関数は position 関数と同程度の速度で動作します。
それ以外の LIKE 式はすべて内部的に正規表現へ変換され、match 関数と同程度の性能で実行されます。
構文
haystack— 検索対象の文字列。StringまたはFixedStringpattern— 照合するLIKEパターン。%(任意の文字数に一致) 、_(任意の1文字に一致) 、およびエスケープ用の\を含めることができます。String
LIKE パターンに一致する場合は 1、一致しない場合は 0 を返します。UInt8
例
使用例
Query
Response
Query
Response
Query
Response
locate
position と似ていますが、引数 haystack と locate の順序が逆になっています。
バージョン依存の動作この関数の動作は、ClickHouse のバージョンによって異なります。
- バージョン < v24.3 では、
locateは関数positionのエイリアスであり、引数(haystack, needle[, start_pos])を受け付けます。 - バージョン >= 24.3 では、
locateは独立した関数となり (MySQL との互換性向上のため) 、引数(needle, haystack[, start_pos])を受け付けます。 以前の動作は、settingfunction_locate_has_mysql_compatible_argument_order = falseを使用して復元できます。
needle— 検索する部分文字列。Stringhaystack— 検索対象の文字列。StringまたはEnumstart_pos— 任意。検索を開始するhaystack内の位置 (1始まり) 。UInt
0 を返します。UInt64
例
基本的な使い方
Query
Response
match
¥ は内部的には 2 バイトを使用しますが、マッチングでは 1 つのコードポイントとして扱われます。
正規表現に NULL バイトを含めることはできません。
haystack または pattern が有効な UTF-8 でない場合の動作は未定義です。
RE2 のデフォルトの動作とは異なり、. は改行にも一致します。これを無効にするには、パターンの先頭に (?-s) を付けてください。
このパターンはアンカーされません。文字列全体に一致させるには、^ と $ を使って自分でパターンをアンカーしてください。
単に部分文字列を検索したいだけであれば、代わりに like または position 関数を使用できます。これらはこの関数よりも大幅に高速です。
代替の演算子構文: haystack REGEXP pattern。
構文
REGEXP_MATCHES
引数
haystack— パターンを検索する対象の文字列。Stringpattern— 正規表現のパターン。const String
1、そうでない場合は 0 を返します。 UInt8
例
基本的なパターン照合
Query
Response
Query
Response
Query
Response
multiFuzzyMatchAllIndices
multiFuzzyMatchAny と同様ですが、一定の編集距離以内で haystack に一致するすべてのインデックスを、順不同の配列として返します。
構文
haystack— 検索対象の文字列。Stringdistance— あいまい一致 の最大編集距離。UInt8pattern— 照合する パターン の Array。Array(String)
Array(UInt64)
Examples
Usage example
Query
Response
multiFuzzyMatchAny
multiMatchAny と同様ですが、一定の編集距離内で、いずれかのパターンが対象文字列に一致した場合に 1 を返します。
この関数は hyperscan ライブラリの実験的機能に依存しているため、一部のエッジケースでは低速になることがあります。
パフォーマンスは編集距離の値や使用するパターンに依存しますが、非あいまい一致のバリアントと比べると常にコストが高くなります。
hyperscan の制約により、
multiFuzzyMatch*() 関数ファミリーは UTF-8 正規表現をサポートしていません (UTF-8 正規表現はバイト列として扱われます) 。haystack— 検索対象の文字列。Stringdistance— あいまい一致における最大編集距離。UInt8pattern— 省略可能。一致対象とするパターンの配列。Array(String)
haystack に一致する場合は 1、それ以外の場合は 0 を返します。UInt8
例
使用例
Query
Response
multiFuzzyMatchAnyIndex
multiFuzzyMatchAny と同様ですが、一定の編集距離内で検索対象文字列に一致する任意のインデックスを返します。
構文
haystack— 検索対象の String。Stringdistance— あいまい一致で許容される最大編集距離。UInt8pattern— 照合するパターンの Array。Array(String)
haystack に一致するパターンのいずれかの索引 (1 から始まる) を返します。一致するものがない場合は 0 を返します。UInt64
例
使用例
Query
Response
multiMatchAllIndices
multiMatchAny と同様ですが、検索対象文字列に一致したすべてのインデックスを、順不同の配列で返します。
構文
Array(UInt64)
例
使用例
Query
Response
multiMatchAny
multiSearchAny を使用できます。この関数よりも大幅に高速に動作します。
構文
haystack— パターンを検索する対象の文字列です。Stringpattern1[, pattern2, ...]— 1つ以上の正規表現パターンからなる配列です。Array(String)
1、それ以外は 0 を返します。 UInt8
例
複数パターンのマッチング
Query
Response
Query
Response
multiMatchAnyIndex
multiMatchAny と同様ですが、haystack に一致する任意の索引を返します。
構文
haystack— 検索対象の文字列です。Stringpattern— 照合する正規表現の配列です。Array(String)
UInt64
例
使用例
Query
Response
multiSearchAllPositions
position と同様ですが、haystack 文字列内の複数の needle 部分文字列それぞれの位置 (バイト単位、1 から開始) を配列で返します。
すべての multiSearch*() 関数でサポートされる needle の数は最大 2^8 個です。
構文
haystack— 検索対象のString。Stringneedle1[, needle2, ...]— 検索する1つ以上の部分文字列の配列。Array(String)
0 を要素とする配列を返します。Array(UInt64)
例
複数の needle の検索
Query
Response
multiSearchAllPositionsCaseInsensitive
multiSearchAllPositions と同様ですが、大文字と小文字を区別せずに検索します。
構文
haystack— 検索対象の文字列。Stringneedle1[, needle2, ...]— 検索する 1 つ以上の部分文字列の配列。Array(String)
0 とする配列を返します。Array(UInt64)
例
大文字と小文字を区別しない複数検索
Query
Response
multiSearchAllPositionsCaseInsensitiveUTF8
multiSearchAllPositionsUTF8 と同様ですが、大文字と小文字を区別しません。
構文
haystack— 検索対象の UTF-8 でエンコードされた文字列。Stringneedle— 検索する UTF-8 でエンコードされた部分文字列の配列。Array(String)
Array
例
大文字と小文字を区別しない UTF-8 検索
Query
Response
multiSearchAllPositionsUTF8
multiSearchAllPositions と同様ですが、haystack と needle の部分文字列は UTF-8 でエンコードされた文字列であることを前提とします。
構文
haystack— 検索対象の UTF-8 でエンコードされた文字列。Stringneedle1[, needle2, ...]— 検索する UTF-8 でエンコードされた部分文字列の配列。Array(String)
0 を格納した配列を返します。Array
例
UTF-8 マルチサーチ
Query
Response
multiSearchAny
multiSearchAnyCaseInsensitive、multiSearchAnyUTF8、および multiSearchAnyCaseInsensitiveUTF8 は、この関数の大文字と小文字を区別しないバリアント、UTF-8 バリアント、またはその両方を提供します。
構文
haystack— 検索対象の文字列。Stringneedle1[, needle2, ...]— 検索する部分文字列の配列。Array(String)
1、一致しなかった場合は 0 を返します。UInt8
例
いずれかに一致する検索
Query
Response
multiSearchAnyCaseInsensitive
haystack— 検索対象の文字列。Stringneedle— 検索する部分文字列。Array(String)
1、ない場合は 0 を返します。UInt8
例
大文字と小文字を区別しない検索
Query
Response
multiSearchAnyCaseInsensitiveUTF8
haystack— 検索対象のUTF-8文字列。Stringneedle— 検索するUTF-8部分文字列。Array(String)
1、ない場合は 0 を返します。 UInt8
例
UTF-8文字列 ‘Здравствуйте’ に文字 ‘з’ (小文字) が含まれているかを確認する
Query
Response
multiSearchAnyUTF8
haystack と needle の部分文字列が UTF-8 でエンコードされた文字列であることを前提としている点を除き、multiSearchAny と同じです。
構文
haystack— 検索対象のUTF-8文字列。Stringneedle— 検索するUTF-8部分文字列。Array(String)
1 を返し、一致しなかった場合は 0 を返します。 UInt8
例
UTF-8文字列 ‘你好,世界’ (‘Hello, world’) について、文字列内に 你 または 界 が含まれているかを確認する例
Query
Response
multiSearchFirstIndex
haystack— 検索対象の文字列。Stringneedles— 検索する文字列の配列。Array(String)
UInt64
例
使用例
Query
Response
Query
Response
Query
Response
multiSearchFirstIndexCaseInsensitive
haystack 内で最も左側で見つかった needle_i のインデックス i (1始まり) を返し、見つからない場合は 0 を返します。
大文字と小文字を区別しません。
構文
haystack— 検索対象の文字列です。Stringneedle— 検索する部分文字列の配列です。Array(String)
needle の索引 (1 から始まる) を返します。一致しない場合は 0 を返します。UInt8
例
使用例
Query
Response
multiSearchFirstIndexCaseInsensitiveUTF8
haystack— 検索対象の文字列です。Stringneedles— 検索する文字列の Array です。Array(String)
UInt64
例
使用例
Query
Response
Query
Response
Query
Response
multiSearchFirstIndexUTF8
haystack 内で最も左側に見つかった needle_i の索引 i (1 から始まる) を返し、見つからない場合は 0 を返します。
haystack と needle は UTF-8 でエンコードされた文字列であることを前提とします。
構文
haystack— 検索対象の UTF-8 文字列です。Stringneedle— 検索する UTF-8 部分文字列の Array です。Array(String)
UInt8
例
使用例
Query
Response
multiSearchFirstPosition
position と同様ですが、複数の needle 文字列のいずれかに一致する haystack 文字列内の最も左のオフセットを返します。
関数 multiSearchFirstPositionCaseInsensitive、multiSearchFirstPositionUTF8、multiSearchFirstPositionCaseInsensitiveUTF8 は、この関数の大文字と小文字を区別しない版、UTF-8 版、またはその両方を提供します。
構文
haystack— 検索対象の文字列です。Stringneedle1[, needle2, ...]— 検索する1つ以上の部分文字列の配列です。Array(String)
needle 文字列のいずれかに一致する、haystack 文字列内の最も左のオフセットを返します。一致しない場合は 0 を返します。UInt64
例
最初の位置を検索
Query
Response
multiSearchFirstPositionCaseInsensitive
haystack— 検索対象の文字列。Stringneedle— 検索する部分文字列の Array。Array(String)
needle 文字列のいずれかに一致する haystack 文字列内の最も左のオフセットを返します。一致しない場合は 0 を返します。UInt64
例
大文字と小文字を区別しない最初の位置
Query
Response
multiSearchFirstPositionCaseInsensitiveUTF8
haystack と needle を UTF-8 文字列として扱い、大文字と小文字を区別しません。
構文
haystack— 検索対象の UTF-8 文字列。Stringneedle— 検索する UTF-8 部分文字列の Array。Array(String)
needle 文字列のいずれかに一致する haystack 文字列内の最も左のオフセットを返します。一致しない場合は 0 を返します。UInt64
例
指定したいずれかの needle に一致する UTF-8 文字列 ‘Здравствуй, мир’ (‘Hello, world’) 内の最も左のオフセットを見つけます
Query
Response
multiSearchFirstPositionUTF8
haystack と needle は UTF-8 文字列であることを前提としています。
構文
haystack— 検索対象の UTF-8 文字列。Stringneedle— 検索する UTF-8 部分文字列の Array。Array(String)
needle 文字列のいずれかに一致する、haystack 文字列内の最も左側のオフセット。一致しない場合は 0 を返します。UInt64
例
指定したいずれかの needle に一致する UTF-8 文字列 ‘Здравствуй, мир’ (‘Hello, world’) 内の最も左側のオフセットを求めます
Query
Response
ngramDistance
ngramDistanceCaseInsensitive、ngramDistanceUTF8、ngramDistanceCaseInsensitiveUTF8 関数を使用してください。
構文
0 から 1 までの Float32 の数値を返します。戻り値が小さいほど、文字列の類似度は高くなります。Float32
例
4-gram 距離を計算
Query
Response
ngramDistanceCaseInsensitive
ngramDistance の大文字と小文字を区別しないバリアントです。
大文字と小文字を無視して、2つの文字列間の 4-gram 距離を計算します。
戻り値が小さいほど、文字列同士の類似度は高くなります。
構文
0 から 1 までの Float32 型の数値を返します。Float32
例
大文字と小文字を区別しない 4-gram 距離
Query
Response
ngramDistanceCaseInsensitiveUTF8
ngramDistance の、UTF-8 に対応した大文字と小文字を区別しないバリアントです。
needle および haystack は UTF-8 でエンコードされた文字列であることを前提とし、大文字と小文字は区別されません。
大文字と小文字を区別せずに、2 つの UTF-8 文字列間の 3-gram 距離を計算します。
戻り値が小さいほど、文字列同士の類似度は高くなります。
構文
0 から 1 までの Float32 値を返します。Float32
例
UTF-8 の大文字と小文字を区別しない 3-gram 距離
Query
Response
ngramDistanceUTF8
ngramDistance の UTF-8 版です。
needle と haystack は、UTF-8 でエンコードされた文字列であることを前提としています。
2 つの UTF-8 文字列間の 3-gram 距離を計算します。
戻り値が小さいほど、文字列の類似度は高くなります。
構文
0 から 1 の範囲の Float32 型の数値を返します。Float32
例
UTF-8 3-gram距離
Query
Response
ngramSearch
ngramSearchCaseInsensitive、ngramSearchUTF8、ngramSearchCaseInsensitiveUTF8 を使用してください。
構文
1.0) 以下の場合は1、それ以外の場合は0を返します。UInt8
例
4-gramによる検索
Query
Response
ngramSearchCaseInsensitive
ngramSearch の大文字と小文字を区別しないバリアントを提供します。
needle 文字列と haystack 文字列の非対称差、つまり needle の N-gram 数から、共通する N-gram 数を needle の N-gram 数で正規化した値を差し引いた数を計算します。
2 つの文字列間の 4-gram 距離が、指定した閾値以下かどうかを、大文字と小文字を区別せずに判定します。
構文
1.0) 以下の場合は 1 を返し、それ以外の場合は 0 を返します。UInt8
例
4-gram を使用した大文字と小文字を区別しない検索
Query
Response
ngramSearchCaseInsensitiveUTF8
ngramSearch の、大文字と小文字を区別しない UTF-8 バリアントです。
haystack と needle は UTF-8文字列であることを前提とし、大文字と小文字を区別せずに処理します。
2 つの UTF-8文字列間の 3-gram 距離が、指定したしきい値以下かどうかを、大文字と小文字を区別せずに判定します。
構文
1.0) 以下の場合は 1、それ以外の場合は 0 を返します。UInt8
例
3-gram を使用した大文字・小文字を区別しない UTF-8 検索
Query
Response
ngramSearchUTF8
ngramSearch の UTF-8 対応版です。
haystack と needle は UTF-8 文字列であることを前提とします。
2 つの UTF-8 文字列間の 3-gram 距離が、指定されたしきい値以下かどうかを判定します。
構文
1.0) 以下の場合は 1、それ以外の場合は 0 を返します。UInt8
例
3-gramを使ったUTF-8検索
Query
Response
notILike
% と _ を含めることができます。
構文
haystack— 検索対象の入力文字列です。StringまたはFixedStringpattern— 照合する SQL の LIKE パターンです。%は任意の文字数 (0 文字を含む) に一致し、_はちょうど 1 文字に一致します。String
1 を返し、それ以外の場合は 0 を返します。UInt8
例
使用例
Query
Response
notLike
like に似ていますが、結果を反転します。
構文
haystack— 検索対象の文字列。StringまたはFixedStringpattern— 照合するLIKEパターン。String
LIKE パターンに一致しない場合は 1、一致する場合は 0 を返します。UInt8
例
使用例
Query
Response
Query
Response
position
haystack 内で部分文字列 needle が現れる位置を返します (バイト単位、位置は 1 から始まります) 。
部分文字列 needle が空の場合は、次のルールが適用されます。
start_posが指定されていない場合:1を返しますstart_pos = 0の場合:1を返しますstart_pos >= 1かつstart_pos <= length(haystack) + 1の場合:start_posを返します- それ以外の場合:
0を返します
locate、positionCaseInsensitive、positionUTF8、positionCaseInsensitiveUTF8 にも適用されます。
構文
haystack— 検索対象の文字列です。StringまたはEnumneedle— 検索する部分文字列です。Stringstart_pos—haystack内で検索を開始する位置 (1始まり) です。省略可能です。UInt
0 を返します。UInt64
例
基本的な使い方
Query
Response
Query
Response
Query
Response
Query
Response
positionCaseInsensitive
position と同様ですが、大文字と小文字を区別せずに処理します。
構文
instr
引数
haystack— 検索対象の文字列。StringまたはEnumneedle— 検索する部分文字列。Stringstart_pos— 省略可能。haystack内で検索を開始する位置 (1 始まり) 。UInt*
0 を返します。UInt64
例
大文字と小文字を区別しない検索
Query
Response
positionCaseInsensitiveUTF8
positionUTF8 と同様ですが、大文字と小文字を区別せずに検索します。
構文
haystack— 検索対象の文字列。StringまたはEnumneedle— 検索する部分文字列。Stringstart_pos— 任意。haystack内で検索を開始する位置 (1始まり) 。UInt*
0 を返します。UInt64
例
UTF-8 の大文字と小文字を区別しない検索
Query
Response
positionUTF8
position と同様ですが、haystack と needle は UTF-8 でエンコードされた文字列であることを前提としています。
構文
haystack— 検索対象の文字列。StringまたはEnumneedle— 検索する部分文字列。Stringstart_pos— 省略可能。検索を開始するhaystack内の位置 (1始まり) 。UInt*
0 を返します。UInt64
例
UTF-8文字数のカウント
Query
Response