TOKENIZE
説明
TOKENIZE関数は、指定されたパーサーを使用して文字列をトークン化し、トークン化結果を文字列配列として返します。この関数は、全文検索機能付きの転置インデックスを使用する際に、テキストがどのように解析されるかをテストし、理解するのに特に有用です。
構文
ARRAY<VARCHAR> TOKENIZE(VARCHAR str, VARCHAR properties)
パラメータ
str: トークン化する入力文字列。型:VARCHARproperties: パーサー設定を指定するプロパティ文字列。型:VARCHAR
propertiesパラメータは以下のキー・バリューペアをサポートします(形式: 'key1'='value1', 'key2'='value2'または"key1"="value1", "key2"="value2"):
サポートされるプロパティ
| プロパティ | 説明 | 値の例 |
|---|---|---|
parser | 組み込みパーサータイプ | "chinese", "english", "unicode" |
parser_mode | 中国語パーサーのパーサーモード | "fine_grained", "coarse_grained" |
char_filter_type | 文字フィルタータイプ | "char_replace" |
char_filter_pattern | 置換対象の文字(char_filter_typeと組み合わせて使用) | "._=:," |
char_filter_replacement | 置換文字(char_filter_typeと組み合わせて使用) | " "(スペース) |
stopwords | ストップワード設定 | "none" |
戻り値
トークン化された文字列を個別の配列要素として含むARRAY<VARCHAR>を返します。
例
例 1: 中国語パーサーの使用
SELECT TOKENIZE('我来到北京清华大学', "'parser'='chinese'");
["我", "来到", "北京", "清华大学"]
例2: 細粒度モードによる中国語パーサー
SELECT TOKENIZE('我来到北京清华大学', "'parser'='chinese', 'parser_mode'='fine_grained'");
["我", "来到", "北京", "清华", "清华大学", "华大", "大学"]
例3: Unicodeパーサーの使用
SELECT TOKENIZE('Apache Doris数据库', "'parser'='unicode'");
["apache", "doris", "数", "据", "库"]
Example 4: character filterの使用
SELECT TOKENIZE('GET /images/hm_bg.jpg HTTP/1.0 test:abc=bcd',
'"parser"="unicode","char_filter_type" = "char_replace","char_filter_pattern" = "._=:,","char_filter_replacement" = " "');
["get", "images", "hm", "bg", "jpg", "http", "1", "0", "test", "abc", "bcd"]
Example 5: Stopwords設定
SELECT TOKENIZE('华夏智胜新税股票A', '"parser"="unicode"');
["华", "夏", "智", "胜", "新", "税", "股", "票"]
SELECT TOKENIZE('华夏智胜新税股票A', '"parser"="unicode","stopwords" = "none"');
["华", "夏", "智", "胜", "新", "税", "股", "票", "a"]
注意事項
-
パーサー設定:
propertiesパラメータは有効なプロパティ文字列である必要があります。このバージョンでは組み込みパーサーのみがサポートされています。 -
サポートされるパーサー: バージョン2.1では以下の組み込みパーサーがサポートされています:
chinese: オプションのparser_mode(fine_grainedまたはcoarse_grained)を持つ中国語テキストパーサーenglish: ステミング機能付きの英語パーサーunicode: 多言語テキスト用のUnicodeベースパーサー
-
パーサーモード:
parser_modeプロパティは主にchineseパーサーで使用されます:fine_grained: 重複するセグメントを持つ、より詳細なトークンを生成coarse_grained: 標準セグメンテーションを使用するデフォルトモード
-
文字フィルター:
char_filter_type、char_filter_pattern、char_filter_replacementを組み合わせて使用し、トークン化前に特定の文字を置換します。 -
パフォーマンス:
TOKENIZE関数は主にパーサー設定のテストとデバッグを目的としています。本番環境での全文検索には、MATCH述語と組み合わせた転置インデックスを使用してください。 -
転置インデックスとの互換性:
TOKENIZEで使用されるパーサー設定と同じものを、Table作成時に転置インデックスに適用できます:CREATE TABLE example (
content TEXT,
INDEX idx_content(content) USING INVERTED PROPERTIES("parser"="chinese")
) -
パーサー動作のテスト:
TOKENIZEを使用して、転置インデックスを作成する前にテキストがどのようにトークン化されるかをプレビューし、データに最も適したパーサーを選択するのに役立てます。
Keywords
TOKENIZE, STRING, FULL-TEXT SEARCH, INVERTED INDEX, PARSER