需求

由于 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 总是空数组,

URL:http://localhost:9200/index/_search
{
"query": {
"filtered": {
"query": {
"bool": {
"should": [{
"query_string": {
"query": "_type:\"my_type\""
}
}]
}
},
"filter": {
"bool": {
"must": [{
"range": {
"过期时间": {
"from": ,
"to":
}
}
}]
}
}
}
},
"from":
}

结果1:

{
"took": ,
"timed_out": false,
"_shards": {
"total": ,
"successful": ,
"failed":
},
"hits": {
"total": 0,
"max_score": ,
"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": ,
"to":
}
}
}]
}
}
}
},
"from":
}

结果2:

{
"took": ,
"timed_out": false,
"_shards": {
"total": ,
"successful": ,
"failed":
},
"hits": {
"total": ,
"max_score": ,
"hits": [
{
......

解决

确保相同字段的数据类型一致,,,

比如上面的问题,我删除了该字段类型为 string 的那个 type 就完全 OK 了。

Elasticsearch 搜索不到数据问题(_mapping 设置)的更多相关文章

  1. Elasticsearch 搜索数据

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  2. 【ElasticSearch】ES 读数据,写数据与搜索数据的过程

    ES读数据的过程: 1.ES客户端选择一个node发送请求,该请求作为协调节点(coordinating node): 2.corrdinating node 对 doc id 对哈希,找出该文档对应 ...

  3. Elasticsearch搜索资料汇总

    Elasticsearch 简介 Elasticsearch(ES)是一个基于Lucene 构建的开源分布式搜索分析引擎,可以近实时的索引.检索数据.具备高可靠.易使用.社区活跃等特点,在全文检索.日 ...

  4. 用ElasticSearch和Protovis实现数据可视化

    搜索引擎最重要的目的,嗯,不出意料就是搜索.你传给它一个请求,然后它依照相关性返回你一串匹配的结果.我们可以根据自己的内容创造各种请求结构,试验各种不同的分析器,搜索引擎都会努力尝试提供最好的结果. ...

  5. 基于Elasticsearch搜索平台设计

    背景 随着公司业务的高速发展以及数据爆炸式的增长,当前公司各产线都有关于搜索方面的需求,但是以前的搜索服务系统由于架构与业务上的设计,不能很好的满足各个业务线的期望,主要体现下面三个问题: 不能支持对 ...

  6. ElasticSearch搜索介绍四

    ElasticSearch搜索 最基础的搜索: curl -XGET http://localhost:9200/_search 返回的结果为: { "took": 2, &quo ...

  7. 第三百六十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)scrapy写入数据到elasticsearch中

    第三百六十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)scrapy写入数据到elasticsearch中 前面我们讲到的elasticsearch( ...

  8. 四十六 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)scrapy写入数据到elasticsearch中

    前面我们讲到的elasticsearch(搜索引擎)操作,如:增.删.改.查等操作都是用的elasticsearch的语言命令,就像sql命令一样,当然elasticsearch官方也提供了一个pyt ...

  9. 【沽泡学院07】基于ElasticSearch搜索附近的人

    1. 为什么要选择ElasticSearch 1)ElasticSearch 优点: 分布式.实时的.Push replication 完全支持Apache Lucene的接近实时的搜索 处理多租户( ...

随机推荐

  1. POJ 3630- Phone List(Trie)

    题意:给一组串,是否存在一个串是另一个的前缀. 分析:val[N]保存树节点上是否组成一个串 #include <map> #include <set> #include &l ...

  2. string 常用 方法

    boost::array< char, 16 > header; string(header.begin(),header.end()) std::vector<uchar> ...

  3. Windows版词汇小助手V3.0发布了

    欢迎使用词汇小助手 作者:IT小小龙 电子邮箱:long_python@126.com 个人博客:http://blog.sina.com.cn/buduanqs 一款跨平台词汇查询记忆学习软件. 已 ...

  4. HGE初始化状态设置

    HGE_FRAMEFUNC:     最重要的设置,每个HGE应用必须设置.游戏的主循环就是他了.类型为bool*(),返回真那么主循环退出,游戏也就结束了.否则进行必要的处理后返回假.必须在调用进入 ...

  5. uva 11168

    题意:给出平面上的n个点,求一条直线,使得所有点在该直线的同一侧且所有点到该直线的距离和最小,输出该距离和. 思路:要使所有点在该直线的同一侧,明显是直接利用凸包的边更优.所以枚举凸包的没条边,然后求 ...

  6. 查看本机IP地址及子网掩码(netmask)

    通常有两种方式来查看本机IP地址及子网掩码,一种是在网路和共享中心中查看网路信息:一种是在cmd命令窗口查看. 下面分别介绍这两种方法: 1.在网路和共享中心中查看本机IP地址及子网掩码 (1)打开控 ...

  7. 【原创】alias与export

    最近在看lualua相关的,其中k中有os.getenv('kroot'),看到~/.bashrc理由kroot但是为什么拿不到,后来发现写成了alias了,应该是export的. alias rer ...

  8. 解决网站出错后 跳转 友好页面 的 asp .net 配置

    <system.webServer> <httpErrors errorMode="DetailedLocalOnly"> <remove statu ...

  9. Java 继承详解

    什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 多个类可以称为子类,单独这个类称为父类.超类或者基类. 子类可以直接 ...

  10. adb pull命令复制android数据库文件.db到电脑

    1.win+r cmd进入命令行 2.cd 进入[sdk]/platform-tools目录下 3.执行下面命令行,复制xxx.db到F:/dest adb pull /data/data/[pack ...