Elasticsearch'OR'聚合术语

时间:2018-08-14 20:21:47

标签: elasticsearch search aggregation

我在Elasticsearch中有很多东西。每个项目都有:

item_id
item_name
item_price
store_connection_id
region_connection_id

可能有几个ID不同但名称相同的项目,我想在搜索中添加一些汇总逻辑。

  • 如果您所在地区有商品,我想返回该商品的ID和价格。
  • 如果您所在地区没有此类商品,我只想退回最便宜的商品

到目前为止,我已经创建了一个查询,用于按名称汇总商品并返回最便宜的商品。是否可以添加另一个术语?

GET items/_search
{
  "query": {
    "query_string": {
    "query": "*"
    }
  },
  "size": 0,
  "aggregations": {
    "partner": {
      "terms": {
        "field": "store_connection_id"
      },
      "aggregations": {
          "name": {
              "terms": {
                  "field": "item_name.keyword"
              },
              "aggs": {
                "top_sales_hits": {
                    "top_hits": {
                        "sort": [{
                          "item_price": { "order": "asc"}
                        }],
                        "_source": {
                            "includes": ["item_id", "item_name", "item_price"]
                        },
                        "size" : 1
                    }
                }
              }
          }
     }
   }
  }
}

0 个答案:

没有答案