错误:在聚合中对存储桶进行排序时弹性搜索中的类强制转换异常

时间:2016-01-16 04:25:47

标签: sorting elasticsearch aggregation classcastexception buckets

  

错误:                   ClassCastException异常[org.elasticsearch.search。 aggregations.support.ValuesSource $ Bytes $ WithOrdinals $ FieldData不能   被投射到   org.elasticsearch.search.aggregations.support.ValuesSource $数值]} {[vTHdFzpuTEGMGR8MES_b9g]

我的查询:

         GET _search
{
  "size" : 0,
  "query" : {
    "filtered" : {
      "query" : {
        "dis_max" : {
          "tie_breaker" : 0.7,
          "queries" : [ {
            "bool" : {
              "should" : [ {
                "match" : {
                  "post.body" : {
                    "query" : "check",
                    "type" : "boolean"
                  }
                }
              }, {
                "match" : {
                  "post.parentBody" : {
                    "query" : "check",
                    "type" : "boolean",
                    "boost" : 2.0
                  }
                }
              } ]
            }
          } ]
        }
        }
        }
        },
  "aggregations" : {
    "by_parent_id" : {
      "terms" : {
        "field" : "post.parentId",
        "order" : {
          "max_score" : "desc"
        }
      },
      "aggregations" : {
        "max_score" : {
          "max" : {}
        },
        "top_post" : {
          "top_hits" : {
            "size" : 1
          }
          }
        }
    }
  }

我希望按max_score而不是doc_count对存储桶进行排序,这是弹性搜索的默认行为。 我正在尝试聚合帖子(包含body和parentBody) 按parentId然后按max_score和每个存储桶对存储桶进行排序  我得到了top_hits。但我排序时遇到上述错误 通过定义最大分数聚合来实现分组。如果我删除max_score聚合,那么一切正常。每个post对象都有parentId,body和parentBody。我使用以下参考编码:

Elasticsearch Aggregation: How to Sort Bucket Order https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html#_field_collapse_example

告诉我,我做错了什么?我已经分享了上面的查询。

0 个答案:

没有答案