メインコンテンツまでスキップ
バージョン: 2.1

TOKENIZE

説明

TOKENIZE関数は、指定されたパーサーを使用して文字列をトークン化し、トークン化結果を文字列配列として返します。この関数は、全文検索機能付きの転置インデックスを使用する際に、テキストがどのように解析されるかをテストし、理解するのに特に有用です。

構文

ARRAY<VARCHAR> TOKENIZE(VARCHAR str, VARCHAR properties)

パラメータ

  • str: トークン化する入力文字列。型: VARCHAR
  • properties: パーサー設定を指定するプロパティ文字列。型: 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"]

注意事項

  1. パーサー設定: propertiesパラメータは有効なプロパティ文字列である必要があります。このバージョンでは組み込みパーサーのみがサポートされています。

  2. サポートされるパーサー: バージョン2.1では以下の組み込みパーサーがサポートされています:

    • chinese: オプションのparser_modefine_grainedまたはcoarse_grained)を持つ中国語テキストパーサー
    • english: ステミング機能付きの英語パーサー
    • unicode: 多言語テキスト用のUnicodeベースパーサー
  3. パーサーモード: parser_modeプロパティは主にchineseパーサーで使用されます:

    • fine_grained: 重複するセグメントを持つ、より詳細なトークンを生成
    • coarse_grained: 標準セグメンテーションを使用するデフォルトモード
  4. 文字フィルター: char_filter_typechar_filter_patternchar_filter_replacementを組み合わせて使用し、トークン化前に特定の文字を置換します。

  5. パフォーマンス: TOKENIZE関数は主にパーサー設定のテストとデバッグを目的としています。本番環境での全文検索には、MATCH述語と組み合わせた転置インデックスを使用してください。

  6. 転置インデックスとの互換性: TOKENIZEで使用されるパーサー設定と同じものを、Table作成時に転置インデックスに適用できます:

    CREATE TABLE example (
    content TEXT,
    INDEX idx_content(content) USING INVERTED PROPERTIES("parser"="chinese")
    )
  7. パーサー動作のテスト: TOKENIZEを使用して、転置インデックスを作成する前にテキストがどのようにトークン化されるかをプレビューし、データに最も適したパーサーを選択するのに役立てます。

Keywords

TOKENIZE, STRING, FULL-TEXT SEARCH, INVERTED INDEX, PARSER