【Doris2.0.3】倒排索引的 match_any 结果与文档不符

Viewed 206

在CONTENT字段上建立倒排索引,指定分词为“chinese”

CREATE INDEX content_idx ON multi_10_DATA_IM_MB_v2(CONTENT) USING INVERTED PROPERTIES("parser" = "chinese");

在CONTENT字段上进行MATCH_ANY keyword 查询,按文档的说法,查询的是字段中包含 keyword 的行

然而实际上,会先对 keyword 进行分词,包含分词后的任一词就返回。

我的需求是 返回CONTENT字段包含 keyword1,或者keyword2,或者keyword3 的行(不能对keyword进行分词),按以上的实验情况是不满足要求的,因为match_any会对keyword进行分词。

请问有更好的实现方式吗

1 Answers

doris的倒排索引会对词组进行分词的,比如“熟悉微信”,会对其分词为“熟悉”和“微信”,此时用match_any会匹配到包含这两个词语中任意一个的结果:

7297478a-769f-41e5-9194-a0bb563bea90.jpeg

对于某些特定组合如果不想让其进行分词,可以在be/dict/user.dict.utf8中加上这个特定组合,比如我加入“熟悉微信”这个词组会被视为一个整体,不再对其进行分词.

注意⚠️:1.需要重启be生效;2.分词效果只对新插入的数据生效

image.png