doris 倒排索引的标点符号问题

Viewed 33

doris 2.1.11在使用倒排索引的时候,使用的unicode分词,这种分词把原始文本中的标点符号没有占一个token,直接被去掉了,导致下面这种情况的数据不应该被查询出来 :
原文:处方审核、药物联用风险提示
查询短语:核药
有什么方法保留标点符号的占位吗?

2 Answers

用中文分词行吗

mysql> SELECT TOKENIZE("处方审核、药物联用风险提示", '"parser"="unicode"');
+--------------------------------------------------------------------------------------+
| TOKENIZE("处方审核、药物联用风险提示", '"parser"="unicode"')                         |
+--------------------------------------------------------------------------------------+
| ["处", "方", "审", "核", "药", "物", "联", "用", "风", "险", "提", "示"]             |
+--------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

mysql> SELECT TOKENIZE("处方审核、药物联用风险提示", '"parser"="chinese"');
+---------------------------------------------------------------------------+
| TOKENIZE("处方审核、药物联用风险提示", '"parser"="chinese"')              |
+---------------------------------------------------------------------------+
| ["处方", "审核", "药物", "联用", "风险", "提示"]                          |
+---------------------------------------------------------------------------+

不太行,中文分词会遇到另外一个问题:分词不完全,就是不能把所有可能的词都分出来。如果用户查询那种没分出来的词,但文章里有,也查询不出来相关文档。所以我们选择了单字分词(unicode)。unicode就遇到了以上标点的问题。我看doris目前所有release的版本都存在这个标点不占位可能当成停用词处理的问题了。这里建议能否给留一个配置项,适配这种场景。