[英]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) ...
搜索正在工作,但显示名称与搜索输入匹配的所有项目,这就是为什么我需要
...仅在搜索结果中显示一项,其中显示一项名称+最低可用价格。
可以使用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.