阿里巴巴国际站介绍,wordpress 家纺主题,无锡网站建设工作,北京网站高端定制需求 由于 kibana3 中#xff0c;不支持直接在请求的 url 中设置搜索的 type #xff08;是不是我不知道#xff1f;#xff1f;#xff1f;#xff09;。 为了支持特定 type 的搜索#xff0c;所以我设置了个下每个 panel 的查询语句#xff0c;让它增加一个#xff…需求 由于 kibana3 中不支持直接在请求的 url 中设置搜索的 type 是不是我不知道。 为了支持特定 type 的搜索所以我设置了个下每个 panel 的查询语句让它增加一个 query_string:
{query: _type:\my_type\ } 结果今天在查一个 bug 的时候发现这样有一个坑 问题 由于URL请求的路径并没不能指定 type 所以每一次的搜索依然会查询整个 index只是在获取结果时候再 query 了一次 _type 字段。 如果在同一个 index 下存在不同 type 中某个字段类型不一致的情况那将可能导致搜索不到想要的结果。因为不同的 type 有不同的 _mapping 示例1我在一个字段第一次存的时候filed1 存为了 string 类型而又新建了另一个 type且 filed1 字段类型变为了 date 后来在对这个字段进行时间 range 过滤操作的时候发现总是匹配不到想要的结果hits 总是空数组 URLhttp://localhost:9200/index/_search
{query: {filtered: {query: {bool: {should: [{query_string: {query: _type:\my_type\}}]}},filter: {bool: {must: [{range: {过期时间: {from: 1860000665,to: 2550091665}}}]}}}},from: 0
} 结果1 {took: 1,timed_out: false,_shards: {total: 1,successful: 1,failed: 0},hits: {total: ,max_score: 1,hits: [但是完全相同的查询语句如果在 URL 中指定 type那么过滤就 OK 了 示例2 URL: http://200.200.194.155:9200/index/my_type/_search
{query: {filtered: {query: {bool: {should: [{query_string: {query: _type:\my_type1\}}]}},filter: {bool: {must: [{range: {过期时间: {from: 1861665,to: 25500008799861665}}}]}}}},from: 0
} 结果2 {took: 1,timed_out: false,_shards: {total: 1,successful: 1,failed: 0},hits: {total: 67,max_score: 1,hits: [{解决 确保相同字段的数据类型一致 比如上面的问题我删除了该字段类型为 string 的那个 type 就完全 OK 了。转载于:https://www.cnblogs.com/licongyu/p/5315700.html