首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >elasticsearch返回唯一值

elasticsearch返回唯一值
EN

Stack Overflow用户
提问于 2015-03-16 15:45:22
回答 1查看 116关注 0票数 0

我有一个名为“类别”的字段。

只需做以下操作,我就可以返回可能类别的列表:

代码语言:javascript
复制
$searchParams['body']['aggs']['category']['terms']['field'] = 'category'; 

但是我想在这个字段中搜索,并且只返回与我的查询相匹配的类别。

示例列表:

  1. 披萨
  2. 苹果派
  3. 橘子派
  4. 杯子蛋糕
  5. 汉堡

我想搜索“饼”,结果如下:

  1. 苹果派
  2. 橘子派

有200多个类别。我想用elasticsearch的方式来做这件事,而不是使用MySQL作为搜索。

(谢谢你的帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-16 17:24:48

聚合在查询的“范围”中运行。因此,如果对"pie"执行搜索查询,聚合将只看到(和聚合)“饼”文档。

代码语言:javascript
复制
$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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29081057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档