• ElasticSearch7.3学习(十七)----搜索结果字段解析及time_out字段解析


    1、搜索结果字段解析

    首先插入一条测试数据

    1. PUT /my_index/_doc/1
    2. {
    3. "title": "2019-09-10"
    4. }

    然后无条件搜索所有

    GET my_index/_search

    得到的结果

    1. {
    2. "took" : 0,
    3. "timed_out" : false,
    4. "_shards" : {
    5. "total" : 1,
    6. "successful" : 1,
    7. "skipped" : 0,
    8. "failed" : 0
    9. },
    10. "hits" : {
    11. "total" : {
    12. "value" : 1,
    13. "relation" : "eq"
    14. },
    15. "max_score" : 1.0,
    16. "hits" : [
    17. {
    18. "_index" : "my_index",
    19. "_type" : "_doc",
    20. "_id" : "1",
    21. "_score" : 1.0,
    22. "_source" : {
    23. "title" : "2019-09-10"
    24. }
    25. }
    26. ]
    27. }
    28. }

    解释

    took:took表示Elasticsearch执行搜索所用的时间,单位是毫秒。这里0毫秒代表特别快,实际上一般都在几十毫秒以上。

    timed_out:是否超时,这里是没有

    _shards:指示搜索了多少分片,成功几个,跳过几个,失败几个。

    hits.total:查询结果的数量,3个document

    hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高

    hits.hits:包含了匹配搜索的document的所有详细数据

    2、time_out字段解析

    例如下图所示:存在一个book索引,2个分片,0副本。

    两个节点上都存在1亿条数据,假如说搜索10条,只需要10ms,这样对前端没啥影响,但是数据量太大时,搜索1个分片都需要10分钟的话,而且ES搜索的请求是每个主分片都要进行搜索,那么这个时间还得加长。这样情况下,用户肯定是受不了的。

    于是引出time_out机制。指定每个shard只能在给定时间内查询数据,能有几条就返回几条。这样至少能搜索出来结果,用户也能好受一点。

     

  • 相关阅读:
    前端工作总结214-可以不参考原型
    typescript手记
    【小沐学NLP】Python使用NLTK库的入门教程
    Python应用:画出任意二维函数的轨迹
    8、Spring 源码学习 ~ 自定义标签的解析
    Prometheus Install
    vue、全局前置守卫
    Java开发学习(四十五)----MyBatisPlus查询语句之映射匹配兼容性
    Kafka安装与使用
    点击切换图片-javascript
  • 原文地址:https://blog.csdn.net/FaithWh/article/details/126773786