在弹性搜索中查询少数兄弟姐妹和有很多孩子的父母的孩子

时间:2016-06-23 16:08:59

标签: elasticsearch

我有两种文档类型,,它们通过父子映射相关联。我试图编写一个返回两者的查询:

  • 包含超过10个项目的群组
  • 属于少于10件商品的商品

所以结果看起来像是:

1. item
2. group of 12 items
3. item
4. item
5. item
6. group of 34 items
7. item

伪查询如下所示:

{
  "bool": {
    "should": [
      query_for_items_in_groups_of_fewer_than_10,
      query_for_groups_with_10_or_more_items
    ]
  }
}

我按照预期工作,但速度很慢:

{
  "bool": {
    "should": [
      {
        "has_child": {
          "type": "item",
          "min_children": 10,
          "query": SOME_QUERY
        }
      },
      {
        "filtered": {
          "query": SOME_QUERY,
          "filter": {
            "not": {
              "has_parent": {
                "type": "group",
                "query": {
                  "has_child": {
                    "type": "item",
                    "min_children": 10,
                    "query": SOME_QUERY
                  }
                }
              }
            }
          }
        }
      }
    ]
  }
}

有更高效的方法吗?或者也许我可以采取一种完全不同的方法来分组项目?

0 个答案:

没有答案