前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ElasticSearch权威指南学习(排序)

ElasticSearch权威指南学习(排序)

作者头像
老梁
发布2019-09-10 17:30:48
4230
发布2019-09-10 17:30:48
举报

排序方式

  1. 相关性排序
    • 默认情况下,结果集会按照相关性进行排序 -- 相关性越高,排名越靠前。
    • 相关性分值会用_score字段来给出一个浮点型的数值,所以默认情况下,结果集以_score进行倒序排列。
  2. 字段值排序
    • 使用 sort 参数进行排序:

    GET /_search { "query" : { "filtered" : { "filter" : { "term" : { "user_id" : 1 }} } }, "sort": { "date": { "order": "desc" }} }

    • 你会发现这里有两个不同点:

    "hits" : { "total" : 6, "max_score" : null, // 没有最高分了 "hits" : [ { "_index" : "us", "_type" : "tweet", "_id" : "14", "_score" : null, // 没有分了 "_source" : { "date": "2014-09-24", ... }, "sort" : [ 1411516800000 ] //排序条件时间转成了毫秒 }, ... }

  3. 默认排序
    • 指定要排序的字段名称:

    "sort": "number_of_children" 字段值默认以顺序排列,而 _score 默认以倒序排列。

  4. 多级排序
    • 如果我们想要合并一个查询语句,并且展示所有匹配的结果集使用第一排序是date,第二排序是 _score:

    GET /_search { "query" : { "filtered" : { "query": { "match": { "tweet": "manage text search" }}, "filter" : { "term" : { "user_id" : 2 }} } }, "sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }} ] }

    • 结果集会先用第一排序字段来排序,当用用作第一字段排序的值相同的时候, 然后再用第二字段对第一排序值相同的文档进行排序,以此类推。
  5. 字符串参数排序
    • 字符查询也支持自定义排序,在查询字符串使用sort参数就可以:

    GET /_search?sort=date:desc&sort=_score&q=search

  6. 为多值字段排序
    • 在为一个字段的多个值进行排序的时候, 其实这些值本来是没有固定的排序的-- 一个拥有多值的字段就是一个集合, 你准备以哪一个作为排序依据呢?
    • 对于数字和日期,你可以从多个值中取出一个来进行排序,你可以使用min, max, avg 或 sum这些模式。
    • 比说你可以在 dates 字段中用最早的日期来进行排序:

    "sort": { "dates": { "order": "asc", "mode": "min" } }

相关性

  1. 查询语句会为每个文档添加一个 _score 字段。评分的计算方式取决于不同的查询类型
  2. 理解评分标准
    • ElasticSearch 在 每个查询语句中都有一个explain参数,将 explain 设为 true 就可以得到更详细的信息

    GET /_search?explain //xplain 参数可以让返回结果添加一个 _score 评分的得来依据。 { "query" : { "match" : { "tweet" : "honeymoon" }} }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 排序方式
  • 相关性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档