DORIS - DORIS之索引简介

索引概述

在这里插入图片描述

索引对比

在这里插入图片描述

索引建议

(1)最频繁使用的过滤条件指定为 Key字段,自动建前缀索引,它的过滤效果最好,但是一个表只能有一个前缀索引,因此要用在最频繁的过滤条件上,前缀索引比较小,所以可以全量在内存中缓存。建表时会自动取表的 Key 的前 36 字节作为前缀索引。
(2)对非 Key 字段如有过滤加速需求,首选建倒排索引,因为它的适用面广,可以多条件组合,次选下面两种索引:
A. 有字符串 LIKE 匹配需求,再加一个 NGram BloomFilter 索引
B. 对索引存储空间很敏感,将倒排索引换成 BloomFilter 索引
(3)如果性能不及预期,通过 QueryProfile 分析索引过滤掉的数据量和消耗的时间,具体参考各个索引的详细文档。
(4)数据块一行数据的前 36 个字节作为这行数据的前缀索引。当遇到 VARCHAR 类型时,前缀索引会直接截断。如果第一列即为 VARCHAR,那么即使没有达到 36 字节,也会直接截断,后面的列不再加入前缀索引,所以在建表时,正确选择列顺序,能够极大地提高查询效率。

<think>好的,我现在需要回答用户关于在Doris-2.0.10中创建倒排索引时指定分词器并按逗号分词的配置方法。首先,我需要回顾一下Doris的倒排索引功能和相关文档。 根据用户提供的引用内容,特别是引用[1]提到从2.0.0版本开始支持倒排索引,可以用于文本类型的全文检索等。引用[2]详细描述了倒排索引的构建过程,包括分词、去停用词、词干提取等步骤。而引用[3]则解释了倒排索引的加速原理,即通过单词到行号的映射和跳表索引提升查询性能。 用户的问题具体是如何在创建倒排索引时指定分词器,并使用逗号作为分词的依据。Doris的倒排索引支持不同的分词器,但需要确认在2.0.10版本中是否支持自定义分词器,特别是按逗号分词。 查阅Doris的官方文档(虽然用户没有直接提供,但根据引用内容推测),创建倒排索引时可以通过`WITH ANALYZER`参数指定分词器。默认情况下可能使用标准分词器,但用户需要的是按逗号分词,这可能需要指定一个自定义的分词器,比如使用`ngram`分词器并设置分隔符为逗号。 可能的步骤包括:在创建表时,在倒排索引的定义中添加分词器参数,例如`INDEX idx_name (column_name) USING INVERTED [PROPERTIES("parser" = "ngram", "gram_separator" = ",")]`。需要验证这种语法是否正确,以及参数是否适用于2.0.10版本。 此外,需要注意字段类型是否为文本类型,因为倒排索引主要用于文本字段。确保用户创建的列是STRING或VARCHAR类型,否则可能不支持分词器配置。 总结下来,正确的配置方法应该是在创建表的语句中,为需要倒排索引的列指定使用`ngram`分词器,并设置`gram_separator`为逗号。这样在分词时,系统会按逗号分割文本,生成对应的索引项。</think>在Doris-2.0.10中实现倒排索引的逗号分词配置,需通过`ngram`分词器参数实现,具体步骤如下: ### 一、建表语法示例 ```sql CREATE TABLE example_table ( id INT, tags STRING, INDEX idx_tags (tags) USING INVERTED PROPERTIES( "parser" = "ngram", "gram_separator" = ",", "gram_size" = "1" ) ) ENGINE=OLAP DISTRIBUTED BY HASH(id) BUCKETS 8; ``` ### 二、参数说明 1. **parser**:指定分词器类型为`ngram`,支持自定义分隔符[^2] 2. **gram_separator**:设置分词分隔符为逗号(`,`) 3. **gram_size**:设为`1`表示最小分词单元长度为1个字符 ### 三、验证分词效果 对于字段值`"apple,banana,orange"`,索引会生成三个独立的词项: - `apple` - `banana` - `orange` 查询示例: ```sql SELECT * FROM example_table WHERE tags LIKE '%banana%'; ``` 该查询会直接命中倒排索引,通过二分查找快速定位文档[^3] ### 四、注意事项 1. 仅支持`STRING`/`VARCHAR`/`TEXT`类型字段 2. 分隔符建议使用ASCII可见字符 3. 建表后无法修改分词参数,需重建索引 4. 需保证`gram_size` <= 分词后最小词项长度
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cloneme01

谢谢您的支持与鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值