Elasticsearch的范围是Java

时间:2016-04-29 10:34:32

标签: java elasticsearch

我想执行此查询(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html):

{
    "range" : {
        "age" : {
            "gte" : 10,
            "lte" : 20
        }
    }
}

我试过这段代码:

QueryBuilders.rangeQuery("age").gte(10).lte(20)

但生成另一个查询:

{
  "range" : {
    "age" : {
      "from" : 10,
      "to" : 20,
      "include_lower" : true,
      "include_upper" : true
    }
  }
}

如何使用Java API创建文档中的范围?我认为从0.98版本中不推荐使用“from”和“to”。

问题是当我尝试执行其他查询时:

{
    "range" : {
        "age" : {
            "gte" : 10
        }
    }
}

因为这段代码:

QueryBuilders.rangeQuery("age").gte(10)

生成此其他查询:

{
  "range" : {
    "age" : {
      "from" : 10,
      "to" : null,
      "include_lower" : true,
      "include_upper" : true
    }
  }
}

在这种情况下,同样的问题加上“to”为空。 再次,如何使用Java API创建这个简单的查询?

无论如何,使用“from”和“to”而不是“gte”或“lte”会返回相同的结果。只是,我担心可能会误解文档或Java API中的BUG。

环境:

  • Java 8
  • ElasticSearch 2.2.1
  • ElasticSearch Java API 2.2.0

0 个答案:

没有答案