繁体   English   中英

cURL Elasticsearch价格比较搜索aggs

[英]cURL Elasticsearch price comparison search aggs

尝试使用PHP cURL实现对Elasticsearch索引的jQuery / AJAX即时搜索,该索引应按共享字段值对项目进行分组,并获取另一个字段值中可用的最低值。 索引中的项目具有ID,名称,价格。 几件商品将具有相同的ID,略有不同的名称和不同的价格。 搜索是针对名称字段的,并且应该将具有相同ID的项目分组,并获取最低的价格(这是用于价格比较演示项目)。 如何做到这一点? 我现在有以下位置,

... get search input $searchQuery with $_GET[] ...

$query = '{
    "query" : {
        "term" : { "name" : "'.$searchQuery.'" }
    }
}';

... cURL request curl_setopt($ch, CURLOPT_POSTFIELDS, $query) ...

搜索正在工作,但显示名称与搜索输入匹配的所有项目,这就是为什么我需要

  • 按ID值分组(汇总?)
  • 获取任何可用的名字
  • 获得最低价格的分组项目

...仅在搜索结果中显示一项,其中显示一项名称+最低可用价格。

可以使用ES来完成所有这些工作,还是需要PHP来分组/获取必要的值?

谢谢

试试这个查询:

$qyery = 
    '{
      "query": {
        "term": {
          "name": {
            "value": "'.$searchQuery.'"
          }
        }
      },
      "aggs": {
        "group_by_id": {
          "terms": {
            "field": "ID",
            "size": 10000
          },
          "aggs": {
            "min_price_in_group": {
              "min": {
                "field": "price"
              }
            }
          }
        }
      },
      "size": 0
    }';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM