首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索排序

弹性搜索排序
EN

Stack Overflow用户
提问于 2019-02-27 19:23:44
回答 2查看 43关注 0票数 0

我有一张桌子用来做一些活动,比如

代码语言:javascript
复制
[
{
  "id": 123,
  "name": "Ram",
  "status": 1,
  "activity": "Poster Design"
},
{
  "id": 123,
  "name": "Ram",
  "status": 1,
  "activity": "Poster Design"
},
{
  "id": 124,
  "name": "Leo",
  "categories": [
    "A",
    "B",
    "C"
  ],
  "status": 1,
  "activity": "Brochure"
},
{
  "id": 134,
  "name": "Levin",
  "categories": [
    "A",
    "B",
    "C"
  ],
  "status": 1,
  "activity": "3D Printing"
}

]

我想通过对字段活动进行排序,从elastic search 5.5中获得这些数据,但我需要所有对应于name = "Ram“的数据,然后保留在一个查询中。

EN

回答 2

Stack Overflow用户

发布于 2019-02-27 20:56:08

您可以使用function score查询根据过滤器(本例中的名称为ram )的匹配来提高结果。

下面的查询应该适用于您

代码语言:javascript
复制
POST sort_index/_search
{
    "query": {
        "function_score": {
            "query": {
                "match_all": {}
            },
            "boost": "5",
            "functions": [{
                "filter": {
                    "match": {
                        "name": "ram"
                    }
                },
                "random_score": {},
                "weight": 1000
            }],
            "score_mode": "max"
        }
    },
    "sort": [{
        "activity.keyword": {
            "order": "desc"
        }
    }]
}
票数 0
EN

Stack Overflow用户

发布于 2019-02-27 20:56:13

我建议结合使用布尔查询和should子句。您还需要在您的字段上使用sort子句。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54904357

复制
相关文章

相似问题

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