黑马学ElasticSearch(六)

目录:

(1)搜索结果处理-排序

(2)搜索结果处理-分页

(3)搜索结果处理-高亮


(1)搜索结果处理-排序

黑马学ElasticSearch(六)_第1张图片

黑马学ElasticSearch(六)_第2张图片

黑马学ElasticSearch(六)_第3张图片

 

 评分降序、价格升序查询

黑马学ElasticSearch(六)_第4张图片 第二黑马学ElasticSearch(六)_第5张图片

 第三

黑马学ElasticSearch(六)_第6张图片

 一旦进行了排序_score就没有值了黑马学ElasticSearch(六)_第7张图片

 

黑马学ElasticSearch(六)_第8张图片 黑马学ElasticSearch(六)_第9张图片

黑马学ElasticSearch(六)_第10张图片

黑马学ElasticSearch(六)_第11张图片

 (2)搜索结果处理-分页

这种分页跟MySQL很像,,但是它的底层原理,有很大的差别,ES底层采用倒排索引,它的结构是不利于做分页的,实际上采用的是逻辑上的分页,比如查999到1000的数据,对ES来讲它或查询0到1000的所有数据,然后去截取990-1000的部分

这种截取在单点查询的时候没有问题,但是ES为了存储更多的数据,ES做了集群 

黑马学ElasticSearch(六)_第12张图片

ES做了集群,ES把数据进行了拆分放到不同的机器上,拆分出来的每一分叫做一个分片,每一个分片上的数据是不一样的,要查询990-1000的数据,就不知道是哪一个分片的前1000条数据了 

黑马学ElasticSearch(六)_第13张图片 结果集上限:产生深度分页问题

黑马学ElasticSearch(六)_第14张图片

黑马学ElasticSearch(六)_第15张图片

search after:搜索是必须先排序,比如说按照价格排序,排序后就有了顺序,比如说先查询0-10条数据,第二次查询接下来10条的时候,会记录第十条排序的价格值,再次查询的时候可以从这个价格值往后去查询  有一个缺点,知道了上一次分页查询的最后一条数据值,往后查,不能够往前查询,数据只能往后分页,不能往前分页

scoll:查询方式是一个快照,第一次查询的时候,我把所有的数据都给你缓存起来,将来你要查询的时候,我再给你截取你需要的部分,这种方式对内存的消耗方式是非常大的不推荐使用  它形成了快照,当你更新了一条文档数据,你这条快照会更新吗,查询到的数据是旧的数据,没有办法查询到实时的数据

 

 

 第一页:可以看到10条数据:黑马学ElasticSearch(六)_第16张图片

 第二页:显示10条数据

黑马学ElasticSearch(六)_第17张图片

 第三页:

黑马学ElasticSearch(六)_第18张图片

 

黑马学ElasticSearch(六)_第19张图片

(3)搜索结果处理-高亮

 黑马学ElasticSearch(六)_第20张图片

pre_tag等可以提前不写默认事假em标签

ES搜索的字段必须与高亮的字段必须一致,如果不一致,需要添加require_field_match,默认是高亮字段和搜索字段不匹配 

黑马学ElasticSearch(六)_第21张图片 

 黑马学ElasticSearch(六)_第22张图片

 

 

 

你可能感兴趣的:(elasticsearch,大数据)