Elasticsearch开发注意点

  • 前言

在最近一段关于ES的开发过程中,不免踩了很多坑,现在我把一些注意点记录下来。

  • 注意点

根据碰到的时间依次列举:

1.字段类型

字段类型一定要在建立索引的时候就确定, 因为一旦建立索引之后,索引中的一些字段类型是不允许修改,如果一定要修改,只能重新建立索引,非常恶心。因此一定要注意字段类型。

同时,字段类型最好自己指定来建立,尽量不要使用自动建立索引。举个例子,你的字段类型可能是Bigdecmal,但是他默认会是float。那么坑爹的点就来了,一旦你进行统计的SUM操作,你会发现得到的结果带了很多的小数。那是因为float转成double造成精度缺失,这里最好的解决方法就是不要让类型为float。

2.父子关系

在建立索引的时候,应该要理清索引之间的索引关系。如要进行父子文档关联的,应在建立索引的时候就要考虑到,不然后面只能重建索引。(一些经常变动的字段可能只能通过父子文档来进行查询)

3.冗余字段

为了追求高效的搜索速度,在ES中我们应该是能避免连表就避免连表。因为使用父子文档来进行搜索,会影响搜索的性能。因此如果是一些不会变动的字段,并且搜索的时候需要的一些在其他表里面的字段可能冗余进来。这样搜索的时候,可以直接查询出来。

4.重建索引

经过验证,es可以新增字段,但是不能删除字段,修改字段,修改字段类型。所以要想上诉的一些不支持的操作,只能通过reindex重建索引来解决

5.深度搜索

ES对深度搜索支持不是很好,由于他本身是将数据全放入内存来保证数据搜索的快速性。那么问题也来了,内存必有上限,当分页深度搜索的时候他是将之前的所有数据都放入内存才行。因此,当你使用ES来作为查询的时候,最好禁用深度搜索

未完待续。。。。

转载于:https://my.oschina.net/u/3095034/blog/3033760

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值