CLS进行日志查询时肉眼能看到的内容但是搜索提示当前检索结果为空原因

- 云计算

开发的同事发给我一个cls查询链接,问为什么肉眼都能看到的日志内容cls却搜索不出来,这里记录下排查过程。


确认检索语句

打开了发给我的链接,确实现在的查询条件没查出来数据,提示 “当前检索结果为空” 。
2023-12-11T14:14:57.png

确认日志内容

删掉了他的查询条件,查看日志内容,确实肉眼能看到他要查询那那几个字,浏览器 Ctrl + F 都能搜索到。
2023-12-11T14:16:53.png

确认索引配置

点击右上角 [索引配置] 按钮,进入索引配置页面。
2023-12-11T14:18:42.png

可以看到当前全文索引是已开启的状态,讲道理输入日志内容的任何一个部分应该都能搜索到。 再看下 分词符 ,难道是分词的问题?
2023-12-11T14:18:51.png

确认分词情况

将分词符复制出来,对比下日志中要检索的部分

@&?|#()='",;:<>[]{}/ \n\t\r\\

不对,他这个中文后面的冒号有间隔,感觉是个中文的冒号,并且我鼠标悬浮上去的时候,系统确实也把它当成一个整体颜色变蓝显示了。
2023-12-11T14:23:51.png

点击当检索条件去搜索,果然能正常搜出来。
2023-12-11T14:27:32.png

鼠标悬浮到前面的单词上面,这个单词后面的冒号是个英文冒号,看着正常分割了。
2023-12-11T14:26:19.png

搜索这个单词也能正常搜索
2023-12-11T14:28:05.png

那石锤了,就是分词的原因。英文冒号能正常分词,他要搜索的那几个中文因为和中文冒号加后面的英文被分词为一个整体了,所以单独只搜索部分中文是搜索不到的。

分词符不支持中文冒号

本来想调整下分词符,加个中文冒号试下,但是不支持。。。
2023-12-11T14:31:25.png

好吧,这样如果要查那几个中文,只能是后面发个版把那部分日志输出时中文冒号改成英文冒号了。