【问题标题】:Can I use ElasticSearch Facets as an equivalent to GROUP BY and how?我可以将 ElasticSearch Facets 用作 GROUP BY 的等价物吗?如何使用?
【发布时间】:2014-04-16 03:59:30
【问题描述】:

我想知道是否可以使用 ElasticSearch Facets 功能来替换理性数据库甚至 Sphinx 客户端中使用的 Group By 功能?

如果是这样,除了官方文档,有人可以指出一个很好的教程吗?

编辑:

让我们考虑一个 SQL 表 products,其中我有以下字段:

  • 身份证
  • 标题
  • 说明
  • 价格

我省略了表中的其他字段,因为我不想将它们放入我的 ES 索引中。

我已经使用 ElasticSearch 为我的数据库建立了索引。

产品在索引中不是唯一的。我们可以有不同价格的相同产品,我希望按价格范围对它们进行分组。

【问题讨论】:

  • 请提供有关您的数据和预期结果的更多详细信息,以及您迄今为止尝试过的一些示例

标签: elasticsearch facets


【解决方案1】:

Facets 为您提供特定词在特定字段中出现的文档数...

现在假设您有一个名为 tweets 的索引,类型为 tweets 和字段“name”...

字段“名称”的构面查询将是:

curl -XPOST "http://localhost:9200/tweets/tweet/_search?search_type=count" -d'
{
   "facets": {
      "name": {
         "terms": {
            "field": "name"
         }
      }
   }
 }'

现在你得到的响应如下

"hits": {
      "total": 3475368,
      "max_score": 0,
      "hits": []
   },
"facets": {
  "name": {
     "_type": "terms",
     "total": 3539206,
     "other": 3460406,
     "terms": [
        {
           "term": "brickeyee",
           "count": 9205
        },
        {
           "term": "ken_adrian",
           "count": 9160
        },
        {
           "term": "rhizo_1",
           "count": 9143
        },
        {
           "term": "purpleinopp",
           "count": 8747
        }
        ....
        ....

这被称为术语方面,因为这是基于术语的计数...还有其他方面也可以看到here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 2011-07-22
    • 2016-01-14
    • 2011-03-11
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多