5.5 ElasticSearch, 一次错误排查:使用嵌套结构体中的价格正序,结果却不是按照价格正序返回的。

在使用Java开发ElasticSearch时,遇到一个排序问题:使用nested query进行价格正序排序,但结果不符合预期。经过分析发现,nested_filter不应直接复用nested query的path参数,而应使用query部分。根据ElasticSearch官方文档,修正后的排序方式正确实现了价格正序。修正后的Query string在Kibana中执行得到预期结果。
摘要由CSDN通过智能技术生成

使用Java开发,先在QueryQuilder中构建了nested query, 然后在SortBuilder中使用同一个nested object进行排序,因而nested_filter复用了QueryBuilder中的nested query, 大致的Query string如下: 

{
  "_source": ["*"], 
  "from" : 0,
  "size" : 10,
  "query" : {
    "bool" : {
      "must" : [
        {
          "nested" : {
            "query" : {
              "bool" : {...}
            },
            "path" : "timeline",
            "ignore_unmapped" : false,
            "score_mode" : "none",
            "boost" : 1.0
          }
        }
      ]
      "disable_coord" : false,
      "adjust_pure_negative" : true,
      "boost" : 1.0
    }
  },
  "explain" : false,
  "sort" : [
    {
      "timeline.minActivityPrice" : {
        "order" : "asc",
        "mode" : "min",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值