• 34.初识搜索引擎及timeout机制


    主要知识点

    1、对搜索执行结果的说明

    2timeout机制讲解

    一、对执行 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

    }

    },

    以下说明各个字段的含义:

    1took:整个搜索请求花费了多少毫秒

    2hits.total:本次搜索,返回了多少条结果

    3hits.max_score:本次搜索的所有结果中,最大的相关度分数是多少,每一条document对于search的相关度,越相关,_score分数越大,排位越靠前

    4hits.hits:默认查询前10条数据,完整数据,_score降序排序

    5shards:表示本次搜索过程中的shards信息。total 表示本次搜索请求一共路由到多少个shards中,"successful": 表示这些路由到的shards中有多少个是成功了的,"failed":表示这些路由到的shards中有多少个是失败了的。

    shards fail的条件(primaryreplica全部挂掉),不影响其他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(分)

       

  • 相关阅读:
    VIM 文本对象选择
    XLA优化实例
    TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理
    OpenCL通用异构开放环境
    LLVM IR 理解
    vue——请求跨域时,vcli2/vcli3设置代理
    【转】SQL 21天实战练习
    bash命令
    linux命令
    jenkins技术
  • 原文地址:https://www.cnblogs.com/liuqianli/p/8466106.html
Copyright © 2020-2023  润新知