elasticsearch删除索引后再新建时踩的坑
2019独角兽企业重金招聘Python工程师标准>>>
事件的过程
所有操作都在
elasticsearch
插件head
里
1. 清空所有索引
这个删除操作和linux rm -rf /
一样简单
DELETE
\*
就是酱紫,点击提交,就全部删除了。你可以刷新下页面,看看。
2. 导入数据
我们的数据是怎么到ES的
在项目里,我们查询ES数据时是通过spring data jpa
,但插入并不是,是一个定时任务拉取第三方平台,数据量比较大,集成了kafka
,再由logstash
发送到ES
。kafka
是直接发送的json格式的字符串,logstash
里配置了动态模板。可以说是跟默认的差不多。
问题出现了
可以说每个发送到ES里的对象(应该叫文档)都有非常多的字段,里面大部分都是不需要分词的,但动态模板不会判断,所以到ES里数据都被分词了!然后我们使用聚合查询部分代码是这样的:
TermsBuilder provinceTermsBuilder = AggregationBuilders.terms("provinceAgg").field("provinceCode.raw");
TermsBuilder cityTermsBuilder = AggregationBuilders.terms("cityAgg").field("cityCode.raw");
嗯,我们查不到任何数据。
看看.raw
,官方解释 大概总结下,就是同一个字段,多一个映射的方式。但这个映射我们没有设置过!我们没有provinceCode.raw
和cityCode.raw
字段,所以通过这两个字段来查询根本没有任何数据
这两个字段代表的省市的代码,例如31代表上海。这个是不需要分词的。
3. 研究索引
问题原因找到了。研究怎么去做这个映射,官方文档 看完,想起,外包交接时给过一个映射的json格式的文件,查看一下,应该就是这些字段的映射,但可能是版本或文档更新的问题,直接执行后,并未起作用,按照文档中官方文档做了下修改,OK 大概流程是
- 再次删除所有索引
- 新建索引并设置映射
在解决索引问题时,还出现了查询数据时找不到索引的问题。发现
spring data jpa
里配置的ES索引名和实际索引不同。Google一下,果然ES里还有别名这一个概念,引用官网的话:即使你认为现在的索引设计已经很完美了,在生产环境中,还是有可能需要做一些修改的。做好准备:在你的应用中使用别名而不是索引名。然后你就可以在任何时候重建索引。别名的开销很小,应该广泛使用
4. 还有初始值这样的操作!
依然没有数据!
在交接时加入了一个新功能,因此新加了一个字段。不过这个字段有默认值!所以查询这个字段时没有数据。
默认值设置:
METHOD: POST
URL: /{索引}/{字段}/_update_by_query
{"script":{"inline":"ctx._source.{字段}=0"}}
注意要用
post
方法,一不小心用了put
直接就是新建一个{字段}类型了。然后查询这个字段时又是各种问题。无奈删之!
总结
使用ES
开发,需要注意备份配置:
- 索引的映射
- 索引别名
调试开发时注意http方法。一不小心用了DELETE
那就是删除喽
原文首发于 风北的博客
转载于:https://my.oschina.net/northerSong/blog/1785525
elasticsearch删除索引后再新建时踩的坑相关推荐
- Elasticsearch 删除索引
章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...
- elasticsearch删除索引_一文带您了解 Elasticsearch 中,如何进行索引管理(图文教程)
在 Elasticsearch 中,索引是一个非常重要的概念,它是具有相同结构的文档集合.类比关系型数据库,比如 Mysql, 你可以把它对标看成和库同级别的概念. 今天小哈将带着大家了解, 在 El ...
- 分布式搜索 Elasticsearch —— 删除索引
为什么80%的码农都做不了架构师?>>> 删除索引的方式很多,这里列举三种. 指定 index .type.id 执行删除 package com.gsoft.gsearch. ...
- Elasticsearch -删除索引(index)
删除单个: DELETE /index curl -XDELETE 'http://192.169.1.666:9200/index 你也可以这样删除多个索引: DELETE /index_one,i ...
- ElasticSearch删除数据后释放磁盘空间
问题:公司es 几百万数据量,删到只剩30万数据量,数据磁盘并没有变少多少. 经过查询才知道删除文档并没有真正删除,仅作了删除标记,从而不能再被搜索到.要想释放磁盘的空间,要使用forcemerge命 ...
- Spring Data ElasticSearch删除索引遇到的java.lang.IllegalStateException: Failed to load ApplicationContext异常
异常内容如下: log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.S ...
- 自定义View开发时踩的坑
在这篇博客中,我希望按照日记的方式来记录自己在android的自定义视图开发中所遇到的一些问题: 1.首先是在自定义view中获取对应的子视图,在自定义视图中定义了很多成员变量,按照个人的代码编写习惯 ...
- mysql gtid坑_通过mysqlbinlog --skip-gtids恢复后再备份可能造成的坑
版本 [root@uz22199 backup]# innobackupex --version innobackupex version 2.4.8 Linux (x86_64) (revision ...
- 使用 i18n 时踩的坑
在开发中我们可能会使用到 i18n 国际化,遇到的一些小问题 开发警告! 警告: You are running the esm-bundler build of vue-i18n. It is re ...
最新文章
- python怎么学最快-人工智能Python开发怎么学才能最快入门
- 计算机组成原理白中英作业,计算机组成原理白中英部分作业解答(第二章)
- redis类型[string 、list 、 set 、sorted set 、hash]
- c语言意义y x 8.0,C语言符号意义(8页)-原创力文档
- latex 幻灯片演示模板
- ICE通信之IceGrid服务(一)
- Oracle 19c 安装步骤
- writeup 2019“新华三杯”中国医疗机构网络安全攻防演练大赛CTF(复赛)
- php中adodb中文手册,[转载]ADODB中文手册(4)
- Java项目:校园自行车租赁管理系统(java+JSP+JavaScript+Servlet+Mysql)
- Win10专业版彻底禁用自动更新
- 模板匹配及其源代码---Edge Based Template Matching
- Caffe:图像数据转换成ldb(leveldb/lmdb)文件
- 自动切图生成html,Photoshop如何实现UI自动切图?_html/css_WEB-ITnose
- 使用gdal的ogr创建shapefile文件(c++)
- 教你创建Oracle复合索引(精)
- [Unity3d]unity从入门到精通官方教程
- matlab计算位温,大气位温、相当位温、饱和相当位温、静力稳定度
- Maven更换远程仓库
- Vue3.0 mixin的使用 以及混合方式讲解
热门文章
- kubernetes管理mysql_kubernetes云平台管理实战:tomcat + mysql(十二)
- 快速排序算法_经常用到的的排序(快速排序和归并排序)简单的计算机算法学习...
- Android的EditText文字动态监听
- 米莱狄机器人怎么那么多_王者荣耀米莱狄攻略,团战技能好了就丢,操作最简单上分法师...
- android:layout_margintop=3dip,南昌航空大学android期末复习资料之 编程题.pdf
- 构建基于流程的多维度企业管理体系
- 腾讯AI加速器三期全球招募开启,打造AI+产业生力军
- 百度宣布AI同传最新突破!能预测,低延时,演示效果惊人,外媒称媲美人类翻译...
- AI攻城狮,你需要那个数据集的种子么?
- AI芯片,为何现在成为新军备竞赛?