-2

我需要弹性搜索中的聚合/多面查询方面的帮助。我已经使用多面查询对结果进行分组,但我没有得到正确计数的分组结果。

请就如何从弹性搜索中获取分组结果提出建议。

{ 
   "query" : { 
     "query_string" : {"query" : "pared_cat_id:1"} } ,
     "facets" : { 
        "subcategory" : { 
           "terms" : { 
                        "field": "sub_cat_id", 
                         "size" : 50, 
                         "order" : "term", 
                         "all_terms" : true 
                     }
                 } 
           }, 
     "from" : 0, 
     "size": 50 
  }

尝试为传递的父类别 ID 获取子类别 ID 的分组结果。

4

3 回答 3

0

“查询字符串”:{“查询”:“pared_cat_id:1”}},

这适用于整体数据,而不是方面计数。

为此,您需要使用方面查询,您可以在其中指定您在主查询字符串中指定的相同内容。

因此,现在向您显示的方面计数基于未应用 "query_string" : {"query" : "pared_cat_id:1"} } 的结果,即。到整个数据。如果您在应用 "query_string" : {"query" : "pared_cat_id:1"} } 后想要构面计数,请在构面查询中提供它。

于 2013-10-06T10:30:55.377 回答
0

Elasticsearch 分面查询在准确性方面工作得非常好,至少我还没有看到任何问题。
只是几个问题:

  1. 这个字符串或数字是什么字段,举个例子?
  2. 您是否应用了任何自定义映射或者您使用了默认的“标准”分析器

请说明哪种不准确,"aa" should have count 100 but its 50或者是否有任何其他类型的不准确?

于 2012-06-26T15:37:18.713 回答
0

如果分片数大于 1,则 Elasticsearch facets 查询返回不正确的计数,因此目前 Facets 已被弃用,并将在未来的版本中删除。鼓励您改为迁移到聚合。

我建议您看一下这篇博文,其中 Alex Brasetvik 给出了很好的描述以及一些关于如何正确使用聚合功能的示例。

于 2014-09-24T07:04:02.627 回答