记一次ES查询数据突然变为空的问题

本文记录了一次在Elasticsearch 6.3.1环境中,使用Java8客户端和Kibana 6.3.4查询数据时遇到的问题。某个查询功能突然返回空结果,原因是字段payment原本定义为keyword,却意外变为text类型。讨论了text与keyword的区别,并介绍了错误排查过程,包括将查询条件转为小写、改用match查询等。最终解决方案是删除索引并按照预期的mapping重建。提醒开发者在删除索引后要手动重建以避免自动mapping导致的类型错误。
摘要由CSDN通过智能技术生成

基本环境

  • elasticsearch版本:6.3.1
  • 客户端环境:kibana 6.3.4、Java8应用程序模块。
    其中kibana主要用于数据查询诊断和查阅日志,Java8为主要的客户端,数据插入和查询都是由Java实现的。

案例介绍

使用elasticsearch存储订单的主要信息,document内的field,基本上是long或keyword,创建索引的order.json文件如下:

{
   
  "doc": {
   
	"properties": {
   
	  "id": {
   
		"type": "keyword",
		"index": true
	  },
	  "status": {
   
		"type": "byte",
		"index": true
	  },
	  "createTime": {
   
		"type": "long",
		"index": true
	  },
	  "uid": {
   
		"type": "long",
		"index": true
	  },
	  "payment": {
   
		"type": "keyword",
		"index": true
	  }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值