全文倒排索引
Beta feature
从版本 3.3.0 开始,StarRocks 支持全文倒排索引,可以将文本拆分成更小的词,并为每个词创建一个索引条目,显示该词与数据文件中对应行号之间的映射关系。对于全文搜索,StarRocks 根据搜索关键词查询倒排索引,快速定位匹配关键词的数据行。
主键表自 v4.0 起支持全文倒排索引。
自 v4.1 起,StarRocks 除了默认的 CLucene 实现外,还支持 builtin(内置)倒排索引实现。builtin 实现同时支持存算一体和存算分离集群。详情请参见 Builtin 倒排索引。
概述
StarRocks 将其底层数据存储在按列组织的数据文件中。每个数据文件包含基于索引列的全文倒排索引。索引列中的值被分词为单个词。分词后的每个词被视为一个索引条目,映射到该词出现的行号。目前支持的分词方法包括英文分词、中文分词、多语言分词和不分词。
例如,如果一行数据包含 "hello world" 且其行号为 123,全文倒排索引根据分词结果和行号构建索引条目:hello->123, world->123。
在全文搜索过程中,StarRocks 可以使用全文倒排索引定位包含搜索关键词的索引条目,然后快速找到关键词出现的行号,显著减少需要扫描的数据行数。