弹性搜索联合查询

时间:2016-04-30 12:16:52

标签: elasticsearch

我想结合2个弹性搜索查询。由于我的查询是单独排序的,因此无法使用和/或类似的方法进行排序 我有新闻文件,我希望得到的结果包括:
- 按日期排序的未读新闻(读取=假)
- 按日期排序的阅读新闻(读=真) 首先是未读新闻,我想获取页面大小为20的新闻,因此我们可能有3页未读新闻,1页阅读+未读新闻,然后5页阅读新闻。
如何创建此查询?

2 个答案:

答案 0 :(得分:1)

使用多搜索API在单个搜索请求中运行各种查询。

_msearch

收到结果后,使用用户定义的算法构建结果集。

答案 1 :(得分:1)

如果您需要排序的所有字段都在同一类型中,则可以使用多个排序标准:

POST index/article/_search
{
  "size": 20,
  "sort": [
    {
      "read": {
        "order": "asc"
      }
    },
    {
      "date": {
        "order": "desc"
      }
    }
  ]
}