您的位置:首页 > 其它

elasticsearch核心知识--28._search结果解析(search timeout机制)

2018-03-26 11:48 513 查看
GET /_search 查询的数据如下:
{
  "took": 6,
  "timed_out": false,
  "_shards": {
    "total": 6,
    "successful": 6,
    "failed": 0
  },
  "hits": {
    "total": 10,
    "max_score": 1,
    "hits": [
      {
        "_index": ".kibana",
        "_type": "config",
        "_id": "5.2.0",
        "_score": 1,
        "_source": {
          "buildNum": 14695
        }
      }
    ]
  }
}

########################################字段含义#############################
took:整个搜索请求花费了多少毫秒
hits.total:本次搜索,返回了几条结果
hits.max_score:本次搜索的所有结果中,最大的相关度分数是多少,每一条document对于search的相关度,越相关,_score分数越大,排位越靠前
hits.hits:默认查询前10条数据,完整数据,_score降序排序

shards:shards fail的条件(primary和replica全部挂掉),不影响其他shard。默认情况下来说,一个搜索请求,会打到一个index的所有primary shard上去,当然了,每个primary shard都可能会有一个或多个replic shard,所以请求也可以到primary shard的其中一个replica shard上去。

timeout:默认无timeout,latency平衡completeness,手动指定timeout,timeout查询执行机制

timeout=10ms,timeout=1s,timeout=1m
GET /_search?timeout=1s 
#####################################timeout###################################
默认时没有timeout的,这里的timeout时指定一个搜索的时间,达到这个时间后,将这段时间搜索的数据返回。好处是:没有必要查询出所有的数据 才进行返回。



但是对于集合aggregation查询时 只取TopN,会对每个分片查询出N条数据,然后聚合这些数据,再对数据进行集合排序
然后得出前TopN 返回给客户端。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐