34.初识搜索引擎及timeout机制
主要知识点
1、对搜索执行结果的说明
2、timeout机制讲解
一、对执行 GET /_search 的结果的说明
执行结果如下(只保留部分)
{
"took": 29,
"timed_out": false,
"_shards": {
"total": 16,
"successful": 16,
"failed": 0
},
"hits": {
"total": 25,
"max_score": 1,
"hits": [
{
"_index": ".kibana",
"_type": "config",
"_id": "5.1.1",
"_score": 1,
"_source": {
"buildNum": 14566
}
},
以下说明各个字段的含义:
1、took:整个搜索请求花费了多少毫秒
2、hits.total:本次搜索,返回了多少条结果
3、hits.max_score:本次搜索的所有结果中,最大的相关度分数是多少,每一条document对于search的相关度,越相关,_score分数越大,排位越靠前
4、hits.hits:默认查询前10条数据,完整数据,_score降序排序
5、shards:表示本次搜索过程中的shards信息。total 表示本次搜索请求一共路由到多少个shards中,"successful": 表示这些路由到的shards中有多少个是成功了的,"failed":表示这些路由到的shards中有多少个是失败了的。
shards fail的条件(primary和replica全部挂掉),不影响其他shard。默认情况下来说,一个搜索请求,会路由到一个index的所有primary shard上去,每个primary shard都可能会有一个或多个replic shard,所以请求也可以到primary shard的其中一个replica shard上去。
6、"hits" 一个数据,此次搜索返回的数据,默认返回10条,以_score降序排序
二、timeout机制
在默认情况下,es并无timeout,如果某一次搜索特别慢,要花5分钟才能完成,那es也会等5分钟搜索完成之后才返回结果,这种情况下对于那些对时间敏感的应用很不利,timeout机制指定每个shard只能在timeout所指定的时间内将已搜索到的结果返回(可能是部分数据),这样就可以确保每次搜索都能在指定的timeout时间内返回数据,
举例说明,假如有6个shard,对某一次搜索请求每个shard都返回1000条数据,都会花费100秒。如果指定了timeout=1s,那些es会在1秒后返回60条数据(10*6)。
可以在查询时指定timeout值
GET /_search?timeout=10m
timeout=10ms(毫秒),timeout=1s(秒),timeout=1m(分)
最新文章
- Android—自定义Dialog
- 我常用的grep命令
- Q的深层嵌套
- SQL Server代理(10/12):使用代理账号运行作业
- Spring的问题解决记录
- Xcode 缓存 帮助文档 隐藏文件夹显示方法
- 2014 Super Training #9 F A Simple Tree Problem --DFS+线段树
- 执行bat文件
- Spring整合CXF,发布RSETful 风格WebService(转)
- hdoj 1402 Prepared for New Acmer【快速幂】
- Heritrix的安装与配置 (最新版 已测试通过)
- linux之SQL语句简明教程---表格连接
- Eclipse远程调试应用程序
- Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现
- 解决iframe在移动端(主要iPhone)上的问题
- 如何让 curl 命令通过代理访问
- python zeros用法实例
- 15.selenium_case03
- postgresql某进程占用cpu资源过高,降不下来
- pandas DataFrame(1)