ElasticSearch搜索引擎中,在Kibana客户端使用命令的时候,千万不要加分号结尾
今天遇到了一个非常难发现的bug 由于经常写java代码,因此常常会在一句代码结尾之处写上一个分号,并且潜意识里觉得这就是非常正常的事情 不会有什么问题。但是今天在Kibana客户端操作ElasticSearch的时候就出错了。接下来看下我当时的操作流程。
首先呢,我现在Kibana里面创建一个user_index索引,然后我在索引里面添加了一个映射,最后我再查询user_index索引信息,如下图:
进行到第二步的时候已经出错了,会提示我没有找到user_index索引,如下图:
但是不应该啊,我前面明明已经创建了user_index索引,并且控制台也提示命令执行成功了啊?难道说控制台在骗我?于是我就使用GET命令查询了下ElasticSearch里面是否真的有user_index索引了,如下图:
结果发现控制台确实也是有user_index索引的,证明我们的ES中确实已经有了这个索引了,那么现在问题来了,既然有这个索引,那为什么上面我们创建映射的时候却提示我们索引不存在呢?
我又继续看了很久 发现了一个很细节的问题,就是上面的控制台输出的索引并不是"user_index"而是"user_index;" 如下图:
而我们上面创建映射的时候写的索引不带分号 如下图:
ES中此时只有带分号的user_index 并没有不带分号的user_index 所以就会提示找不到索引了。
因此以后在Kibana客户端写命令的时候,千万不要加分号,因为它会把分号当做内容,下图中的分号都要去掉 :