首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyElasticSearch上的聚合(pyes)

PyElasticSearch上的聚合(pyes)
EN

Stack Overflow用户
提问于 2014-12-24 17:28:53
回答 1查看 371关注 0票数 0

我希望计算一些带索引的产品数据的值计数聚合,但我似乎在ValueCountAgg构造函数中获得了错误的一些参数。

这样的索引数据的示例如下-:

代码语言:javascript
复制
{
  "_index": "test-index",
  "_type": "product_product",
  "_id": "1",
  "_score": 1,
  "_source": {
    "code": "SomeProductCode1",
    "list_price": 10,
    "description": null,
    "displayed_on_eshop": "true",
    "active": "true",
    "tree_nodes": [],
    "id": 1,
    "category": {},
    "name": "This is Product",
    "price_lists": [
      {
        "price": 10,
        "id": 1
      },
      {
        "price": 10,
        "id": 2
      }
    ],
    "attributes": {
      "color": "blue",
      "attrib": "something",
      "size": "L"
    },
    "type": "goods"
  }
}

我按照下面的-计算聚合:

代码语言:javascript
复制
for attribute in filterable_attributes:
    count = ValueCountAgg(
        name='count_'+attribute, field='attributes.'+attribute
    )
    query.agg.add(count)

其中query是包装在~pyes.query.Search对象中的~pyes.query.Query对象。filterable_attributes是属性名称的列表,例如颜色和大小。

我也尝试过设置field=attribute,但似乎没有什么不同。我在执行搜索时获得的结果集的aggs属性-如下:

代码语言:javascript
复制
{'count_size': {'value': 0}, 'count_color': {'value': 0}}

其中,sizecolorattributes字典中进行索引,如上所示。这些显然是错误的结果,我认为这是因为我没有正确设置field

我哪里错了?

EN

回答 1

Stack Overflow用户

发布于 2014-12-24 18:26:10

我发现我错在哪里了。

根据Scoping Aggregations的说法,聚合的作用域默认情况下与其查询相关联。我的查询返回零个结果,因此我必须修改搜索短语。

在那之后,我得到了所需的结果,聚合出来的结果是正确的。

代码语言:javascript
复制
{'count_size': {'value': 3}, 'count_color': {'value': 3}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27634579

复制
相关文章

相似问题

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