首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >弹性搜索:如何在文档中划分一个数字,然后排序?

弹性搜索:如何在文档中划分一个数字,然后排序?
EN

Stack Overflow用户
提问于 2019-08-19 11:42:53
回答 1查看 442关注 0票数 2

我们在弹性搜索中有以下文件:

代码语言:javascript
运行
复制
[
        {
        "price" : "95",
        "relevance" : 5
        },
        {
        "price" : "105",
        "relevance" : 7
        },
        {
        "price" : "92",
        "relevance" : 3
        },
        {
        "price" : "82",
        "relevance" : 1
        },
        {
        "price" : "89",
        "relevance" : 9
        }
    ]

我们希望根据价格(含桶)对其进行排序,然后根据这些桶内的相关性,即10s桶中的排序价格,以便输出:

代码语言:javascript
运行
复制
[
    {
    "price" : "105",
    "relevance" : 7
    },
    {
    "price" : "95",
    "relevance" : 5
    },
    {
    "price" : "92",
    "relevance" : 3
    },
    {
    "price" : "89",
    "relevance" : 9
    },
    {
    "price" : "82",
    "relevance" : 1
    }
]

首先,我们将每个价格除以10,并按部门的int部分创建桶(我们将得到桶- 9、10、8),在对桶进行排序之后,=>将是带有(10、9、8)的文档。然后根据相关性对这些桶中的文档进行排序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-19 13:33:15

以下查询应如您所期望的那样工作:

代码语言:javascript
运行
复制
POST index/_search
{
  "size": 0,
  "aggs": {
    "prices": {
      "terms": {
        "script": "doc.price.value / 10",
        "order": {
          "max_price": "desc"
        }
      },
      "aggs": {
        "max_price": {
          "max": {
            "field": "price"
          }
        },
        "docs": {
          "top_hits": {
            "size": 5,
            "sort": {
              "relevance": "desc"
            }
          }
        }
      }
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57556048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档