0

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

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

编辑 :

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

  • ID
  • 标题
  • 描述
  • 价格
  • 等等

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

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

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

4

1 回答 1

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
        }
        ....
        ....

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

于 2014-04-15T14:23:13.317 回答