设为首页 加入收藏

TOP

Elasticsearch学习笔记 一(四)
2017-10-16 18:20:03 】 浏览:4223
Tags:Elasticsearch 学习 笔记
d_out" : false }

 

解释一下查询结果:

hits是返回结果最重要的部分,其中total代表匹配总数,每个文档都有元数据_index库,_type类型,_id编号,_source值字段,_score代表相关性,文档按照相关性倒序返回。

_took字段代表搜索花了多少ms .

_shards告诉我们参与分片的总数和成功与失败多少个。正常情况下不会出现失败,如果遇到灾难故障比如同一分片原始数据和副本都丢失了,那么对这个分片将没有可用副本做响应,ES则会报告有失败的分片,但正确返回剩余分片结果。

time_out指示了是否查询超时,在查询的时候,你也可以设置超时时间 GET /_search?timeout=10ms 。关于超时需要特别注意的是,超时并不是停止执行查询,而是告知正在协调节点,在所设置的时间内,返回目前已查询收集到的的结果。在后台,即使结果已经返回给我们了,但是查询仍然在执行。为什么说是返回已收集到的文档,是因为在集群内搜索的时候,协调节点转发请求到其他节点的主分片或者副分片上,汇集结果。

不记得什么是协调节点了吗?Elasticsearch集群中作为客户端接入的节点叫协调节点。协调节点会将客户端请求路由到集群中合适的分片上。对于读请求来说,协调节点每次会选择不同的分片处理请求,以实现负载均衡。

一些在一个或多个特殊的索引并且在一个或者多个特殊的类型中进行搜索查询的示范:
/_search 在所有的索引中搜索所有的类型
/gb/_search 在 gb 索引中搜索所有的类型
/gb,us/_search 在 gb 和 us 索引中搜索所有的文档
/g*,u*/_search 在任何以 g 或者 u 开头的索引中搜索所有的类型
/gb/user/_search 在 gb 索引中搜索 user 类型
/gb,us/user,tweet/_search 在 gb 和 us 索引中搜索 user 和 tweet 类型
/_all/user,tweet/_search 在所有的索引中搜索 user 和 tweet 类型

分页搜索,如果每页展示 5 条结果,可以用下面方式请求得到 1 到 3 页的结果:

GET /_search?size=5 GET /_search?size=5&from=5 GET /_search?size=5&from=10

ES返回分页数据的思路是 : 比如在一个有 5 个主分片的索引中搜索。 当我们请求结果的第一页(结果从 1 到 10 ),每一个分片产生前 10 的结果,并且返回给 协调节点 ,协调节点对 50 个结果排序得到全部结果的前 10 个。

这也说明在深度分页中,所将付出的代价,比如获取第1000页,那么每个节点查询出10010条,最后到协调节点中,从50050条抛弃50040条取10条. 补充一句 为什么每个分片可以做我们想要的查询,想要的数量和结果?是因为每个分片都是一个Lucene实例,是一个完整的搜索引擎

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Mysql数据库的二进制安装和基础入.. 下一篇连接远程数据库ORACLE11g,错误百..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目