悟空,拿我的打狗棒来

elasticsearch5.x如何删除某个type,多Type好还是多个Index比较好

Elasticsearch | 作者 F91 | 发布于2017年06月30日 | 阅读数:5568

es版本: 5.x
先说明下情况
有一个关系型数据库,由于搜索的需要,现将搜索业务从原来的数据库查询改为elasticsearch搜索。
每张表都为一个ES的Type,比方说有6张表,就有6个type。每个表中的数据现在有600w左右。
 
----------------
起初打算结构按照数据库结构设计,即一个Index有多个Type,逛完社区发现有的建议多个index方便管理和维护。
但是有一点,由于关系型数据库的数据业务复杂,批量操作就会将整张表的数据进行修改,甚至删除,但没有提示出哪些数据有变化。
所以往es中导数据的时候要把对应表的数据清理掉再导入,可是没有直接清理Type的操作,找到一个方法使用_delete_by_query删除,但是这样删除整个Type的数据超级慢。
(单表查询,没有关联)
求解决思路。
 
已邀请:

kennywu76 - Wood

赞同来自: napoay laoyang360

新项目不要在一个索引下建多个type,直接使用索引区分不同类型的数据。实际上ES的type和关系型数据库的表只是看起来比较相似,但其实在数据隔离方面有很大区别,不理解底层机制的用户会被性能问题和搜索评分问题所困扰。


为了避免混乱,ES从6.0开始不再支持一个索引下的多个type。

要回复问题请先登录注册