kibana版本:5.4
在使用kibana 查询数据时,如果我们根据数据id 来获得一条数据,写法
get 索引名称/类型名称/文档主键 如:get testindex/testtype/01
这样就可以获取主键编号为01 的数据,可是有时候我们不知道主键,根据其他字段来进行全文搜索时,就需要写一些复杂的DSL查询语言,如下:
get testindex/inc/_search { "query": { "match": { "IncCName": "潮州市 有限公司" } } }
实际执行的时候,发现并没有任何的结果,是不是很坑,同样是get查询,这样就不行;
然后我们用验证查询API来查看下我们的DSL执行过程,验证代码如下:
get 索引/类型/_validate/query?explain { "query":{ "match": { "IncName": "潮州市 有限公司" } } }
发现这个查询并没有匹配到任何的字段信息,如下图:
由此可见,kibana并没有成功识别到我们的这段DSL查询代码;
解决方案:把get 调整为大写 GET ,然后在执行验证查询API,如下图:
这样,就可以看到,匹配到字段incname,然后对潮州市 有限公司进行的分词,用这些分词去匹配所有的结果,返回包含这些词的结果值。