Elasticsearch实践(3)-api分页查询

elasticsearch系列:

(1)Elasticsearch实践(1)-搭建及IK中文分词

(2)Elasticsearch实践(2)-索引及索引别名alias

(3)Elasticsearch实践(3)-api分页查询

es分页有两种,from size浅分页和scroll深分页,这里对这两种分页都做了实现,使用的是es的java api。from size类似于mysql的limit分页,from偏移,默认为0,size为返回的结果数量,默认为10。在数据量不大的情况下一般会使用from size,数据量大的时候效率比较低,而且很费内存,每次会把from*size条记录全部加载到内存中,对结果返回前进行全局排序,然后丢弃掉范围外的结果,重复这样的操作会导致内存占用过大而使es挂掉,并且受数据条数限制,10000条,需修改索引限制。🤔

阅读更多

Elasticsearch实践(2)-索引及索引别名alias

我们都知道es效率如此高主要和索引是分不开的,需要将每一条数据建立索引,创建索引时数据字段也是你插入时的样子,索引中包含了数据的属性字段。而且创建索引也比较耗时(当然了,肯定比插入关系型数据库中更快😁),但是毕竟每一条数据都要建一次,数据量到达千万级亿级时,时间不是很乐观。🤔

💡想像这样一个场景,产品上线一段时间后,由于产品需要,要将某个字段类型改变,比如需要将某个long型字段改成string类型,直接改会类型报错,查阅官方文档可知,es是不支持索引的更新操作的,需要对所有已有数据的所有field进行reindex,这意味着,需要停止服务进行重建索引操作,停服是最不想看到😭,这时如果你当初建了索引别名,你会感谢你当初使用别名的决定,为何要用别名alias?🤷

阅读更多

Elasticsearch实践(1)-搭建及IK中文分词

🔍近期在做商品搜索优化,对比了Solr与Elasticsearch的区别,两者都是基于Lucene实现的封装,但es在数据量越大的情况下实时检索性能优于solr,更适用于实时商品搜索,于是选用了es,下面介绍elasticsearch搜索引擎的搭建及使用,这里使用的是2.2.1的es版本,以及1.8.1的ik分词版本。

阅读更多