全文インバーテッドインデックス
バージョン 3.3.0 以降、StarRocks は全文インバーテッドインデックスをサポートしています。これにより、テキストを小さな単語に分割し、各単語に対してインデックスエントリを作成し、その単語とデータファイル内の対応する行番号とのマッピング関係を示すことができます。全文検索では、StarRocks は検索キーワードに基づいてインバーテッドインデックスをクエリし、キーワードに一致するデータ行を迅速に特定します。
全文インバーテッドインデックスは、主キーテーブルおよび共有データクラスタではまだサポートされていません。
概要
StarRocks は、基礎となるデータを列ごとに整理されたデータファイルに格納します。各データファイルには、インデックス化された列に基づく全文インバーテッドインデックスが含まれています。インデックス化された列の値は、個々の単 語にトークン化されます。トークン化後の各単語はインデックスエントリとして扱われ、その単語が出現する行番号にマッピングされます。現在サポートされているトークン化方法は、英語トークン化、中国語トークン化、多言語トークン化、およびトークン化なしです。
例えば、データ行に "hello world" が含まれ、その行番号が 123 の場合、全文インバーテッドインデックスはこのトークン化結果と行番号に基づいてインデックスエントリを構築します: hello->123, world->123。
全文検索中、StarRocks は全文インバーテッドインデックスを使用して検索キーワードを含むインデックスエントリを特定し、その後キーワードが出現する行番号を迅速に見つけることができ、スキャンする必要のあるデータ行の数を大幅に削減します。
基本操作
全文インバーテッドインデックスの作成
全文インバーテッドインデックスを作成する前に、FE 設定項目 enable_experimental_gin
を有効にする必要があります。
ADMIN SET FRONTEND CONFIG ("enable_experimental_gin" = "true");
また、全文インバーテッドインデックスは重複キーテーブルでのみ作成でき、テーブルプロパティ replicated_storage
は false
である必要があります。