【问题标题】:How to distinct the result from elasticsearch如何区分elasticsearch的结果
【发布时间】:2021-03-29 15:51:07
【问题描述】:

您好,我可以检查一下 elasticsearch 上不同值的代码。

  • 结果 1:蓝色
  • 结果 2:红色
  • 结果 3:蓝色
  • 结果 4:黑色
  • 结果 5:白色
  • 结果 6:蓝色
  • 结果 7:绿色
  • 结果 8:红色
  • 结果 9:粉红色

而不是 9 个结果,

我只希望得到 6 个结果,正确的应该显示蓝色、红色、黑色、白色、绿色、粉色

例如,当前结果与代码相同,但显示 9 个结果

Get /color/_search
{
  "aggs": {
     "color_filter" : { 
        "terms": {
            "field": "color.keyword"
        }
     }
  }
}

【问题讨论】:

    标签: elasticsearch distinct


    【解决方案1】:

    您正在使用带有多个值的“术语”聚合。尝试像这样使用“术语”

    {
      "aggs": {
         "color_filter" : { 
            "term": {
                "field": "color.keyword"
            }
         }
      }
    }
    

    【讨论】:

    • 我尝试使用术语,它回复“类型”:“named_object_not_found_exception”,“原因”:“[4:15] 无法解析名称为 [术语] 的 BaseAgregationBuilder:找不到解析器”
    • 对不起,我以为是查询。 “条款”对于聚合是正确的。我认为您正在检查响应中的命中率。点击将始终单独包含每个文档。您必须检查响应中的聚合,这些聚合将对您的案例中的唯一文档进行分组。
    • 如果您不想在响应中点击,您必须在请求中添加 "size": 0 以便您只会获得聚合响应
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    相关资源
    最近更新 更多