我有一个名为'category'的字段。
我可以通过以下方式返回可能的类别列表:
$searchParams['body']['aggs']['category']['terms']['field'] = 'category';
但我想在该字段内搜索并仅返回与我的查询匹配的类别。
示例列表:
我想搜索“馅饼”并得到以下结果:
有200多个类别。我想用弹性搜索方式做这个,而不是用MySQL作为搜索。
感谢所有帮助:)
答案 0 :(得分:0)
聚合在"scope" of the query中运行。因此,如果您对"pie"
执行搜索查询,则聚合将仅查看(并聚合)“饼”文档。
$query = [
'index' => 'my_index',
'type' => 'my_type',
'search_type' => 'count', // <-- Note search_type = count, to ignore search hits
'body' => [
'query' => [
'match' => [
'category' => 'pie'
]
],
'aggs' => [
'category' => [
'terms' => [
'field' => 'category'
]
]
]
]
];
$results = $client->search($query);