需求

由于 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": 1860000665,"to": 2550091665}}}]}}}},"from": 0
}

结果1:

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

Elasticsearch 搜索不到数据问题(_mapping 设置)相关推荐

  1. Elasticsearch 搜索测试与集成Springboot3

    Elasticsearch是专门做搜索的,它非常擅长以下方面的问题 Elasticsearch对模糊搜索非常擅长(搜索速度很快) 从Elasticsearch搜索到的数据可以根据评分过滤掉大部分的,只 ...

  2. ElasticSearch搜索底层基础原理总结

    目录: 1._search结果分析 2.multi-index和multi-type 3.分页查询与deep paging 4.query DSL和query string 5.mapping 6.倒 ...

  3. JAVA商城项目(微服务框架)——第11天 elasticsearch搜索

    0.学习目标 独立安装Elasticsearch 会使用Rest的API操作索引 会使用Rest的API查询数据 会使用Rest的API聚合数据 掌握Spring Data Elasticsearch ...

  4. 基于HBase+ ElasticSearch的海量交通数据实时存取方案设计

    董长青,任女尔,张庆余,田玉靖 北京卡达克数据技术中心软件业务本部,天津 300300 摘要:交通流数据具有数据海量.存储和交互速率快等特征,因此其数据的采集.存储及检索成为了车辆远程监控平台中的关键 ...

  5. ElasticSearch面试 - es 写入数据的工作原理是什么啊?

    ElasticSearch面试 - es 写入数据的工作原理是什么啊? 面试题 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗? ...

  6. php kibana查询,搜索您的数据 | Kibana 用户手册 | Elastic

    搜索您的数据edit 通过在搜索栏输入搜索条件,您可以在匹配当前索引模式的索引中进行搜索.您可以进行简单的文本查询,或使用 Lucene 语法,或使用基于 JSON 的 Elasticsearch 查 ...

  7. 【Elasticsearch】了解Elasticsearch写入磁盘的数据

    文章目录 1.概述 1.从Elasticsearch路径说起 2.文件从哪里来? 3.节点数据 4.索引数据 5.分片数据 6.每个分片的 事务日志(Transaction Log) 7.Lucene ...

  8. java实现sug,Elasticsearch搜索Suggest功能优化

    搜索Suggest需要优化问题: 怎么优化Suggest词库,提升Suggest词准确率 怎么提高响应速度 suggest词库获取 冷启动可以从内容中提取热词数据来解决,或者人工设置 挖掘搜索日志: ...

  9. Elasticsearch 搜索入门技术之一

    1,课程回顾 2,本章重点 什么是全文检索,常用全文检索框架的基本原理是什么 es是什么,主要使用场景 es分布式搜索引擎集群的搭建 3,具体内容 3.1 全文检索 3.1.1 数据分类 我们生活中的 ...

最新文章

  1. python 查找文件内容性能 grep_使用grep查找文件中指定字符出现的次数
  2. 机器学习中的分类距离
  3. android studio 如何让包名展开
  4. Xamarin XAML语言教程构建ControlTemplate控件模板
  5. 【Windows 逆向】内存地址分析 ( 动态地址 | 静态地址 | 偏移量 )
  6. How far away ? HDU - 2586
  7. 二十五、Kaggle | 全球听众最多的50首歌曲
  8. Heap与Stack的区别- -
  9. java ee maven_针对新手的Java EE7和Maven项目–第7部分
  10. javascript读取php,PHP如何读取由JavaScript设置的Cookie
  11. iOS利用SDWebImage实现缓存的计算与清理
  12. Zookeeper概念学习系列之zookeeper是什么?
  13. AirServer for mac如何实现无线投屏
  14. java面向对象编程考试题_《Java面向对象程序设计》考试卷及答案带注释
  15. Tensorflow深度学习入门(5)——优化训练MNIST数据和调用训练模型识别图片
  16. 两款投屏和跨屏协作软件
  17. 最厉害的java混淆器_Java-哪个JAVA混淆器好用?
  18. ICCV 2021 Oral | 新类别发现(Novel Class Discovery)的统一目标
  19. 【点宽专栏】研报复现——跨期价差分析与跨期套利研究
  20. 人民币符号怎么打?美元符号怎么打?

热门文章

  1. android action bar 风格,自定义ActionBar风格和样式
  2. aix解锁oracle用户,aix用户被锁定的解决办法
  3. mysql innodb 全表锁,Mysql InnoDB行锁及表锁分享
  4. 微信公众平台网站开发JS_SDK遇到的bug——wx.config注册提示成功,但部分接口注册失败问题
  5. 计算机教学理论研究,计算机辅助教学理论实践研究.doc
  6. 中如何实现文字转语音_录音转文字、文字转语音,学会这一招就够了!手把手教你如何操作...
  7. Oracle中通过:触发器,存储过程,Function调用实现解析Clob字段类型中存储的xml字符串...
  8. OpenSSL编写SSL,TLS程序
  9. 用Python去除扫描型PDF中的水印
  10. 《Python Cookbook 3rd》笔记(4.5):反向迭代