ES查询返回字段全解释

  |   0 评论   |   38 浏览

    ES作为我们当前最常用的全文检索引擎之一,我们经常会有一些性能调优的工作需要处理。
    一般而言,最关注的是我们每一次检索耗时情况怎么样。那么这里我们可以用什么方式来看
    每一次检索的耗时呢?
    首先在我们业务代码中加一些耗时统计log,当然这个是一种方式。但是这个耗时包含了网络
    的开销。那么我们有没有一个更好的方式来直接看ES查询的耗时呢,答案当然是有的。
    在我们执行DSL语句时候,会看到一串返回结果,我们在返回结果中,就能看到档次查询的耗
    时情况,具体多长时间,这个能够较好的为我们提供效果优化的参考。那么,我们来看看ES返
    回字段中具体的解释:
    首先看一段返回示例
    {
    “took” : 26,
    “timed_out” : false,
    “_shards” : {
    “total” : 5,
    “successful” : 5,
    “failed” : 0
    },
    “hits” : {
    “total” : 1000,
    “max_score” : 1.0,
    “hits” : [ {
    “_index” : “bank”,
    “_type” : “account”,
    “_id” : “1”,
    “_score” : 1.0
    }, {
    “_index” : “bank”,
    “_type” : “account”,
    “_id” : “6”,
    “_score” : 1.0
    }
    }

    返回的内容大致可以如下讲解:
    * took:是查询花费的时间,毫秒单位
    * time_out:标识查询是否超时
    * _shards:描述了查询分片的信息,查询了多少个分片、成功的分片数量、失败的分片数量等,上面的示例显示5个分片
    * hits:搜索的结果,total是全部的满足的文档数目,hits是返回的实际数目(默认是10)
    * _score是文档的分数信息,与排名相关度有关,参考各大搜索引擎的搜索结果,就容易理解。

    当然如我们针对检索耗时优化,我们可以参考每次返回的took值,took值越低,说明检索越快。

    评论

    发表评论

    validate