Python 官方文档:入门教程 => 点击学习
目录Range Query查询语法示例查询数字范围查询日期范围查询字符串范围注意Javaapi查询示例总结Range Query Range查询可以查询一个范围内的文档。它可以用来查
Range查询可以查询一个范围内的文档。它可以用来查询数值型字段、日期型字段、字符串型字段等等。
我们可以使用range查询来查询符合一定范围内的数据,如查询某个价格区间、某个时间段内的数据等等。
GET /{index}/_search
{
"query": {
"range": {
"{field}": {
"gte": "{lowerBound}",
"lte": "{upperBound}",
"gt": "{lowerBound}",
"lt": "{upperBound}",
"boost": {boostValue},
"fORMat": "{dateFormat}",
"time_zone": "{timezone}"
}
}
}
}
其中,{field}
表示要查询的字段,{lowerBound}
和{upperBound}
表示要查询的范围,gte
表示大于等于,lte
表示小于等于,gt
表示大于,lt
表示小于。
boost
是用来提高查询的重要性,可以设置一个浮点数。
format
是用来设置日期格式,如果要查询日期类型的字段,可以设置这个参数。
time_zone
是用来设置时区。
GET /products/_search
{
"query": {
"range": {
"price": {
"gte": 100,
"lte": 200
}
}
}
}
GET /logs/_search
{
"query": {
"range": {
"timestamp": {
"gte": "2022-01-01",
"lte": "2022-01-31",
"format": "yyyy-MM-dd"
}
}
}
}
针对字符串类型的字段,使用range
查询需要注意以下几点:
keyWord
类型,才能使用range
查询。下面是一个使用range
查询查询字符串区间的示例:
查询age
字段值在"20"
到"30"
之间(包括边界值)的文档:
GET /user_info/_search
{
"query": {
"range": {
"age": {
"gte": "20",
"lte": "30"
}
}
}
}
即使字段类型为字符串,如果该字段的值可以按照一定的顺序进行比较,那么就可以进行范围查询。比如日期、数字、版本号等等。但是对于不可比较的字符串值,如名称、描述等等,就无法进行范围查询了。
SearchRequest searchRequest = new SearchRequest("user_info");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("age")
.gte("20")
.lte("30");
searchSourceBuilder.query(rangeQueryBuilder);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
以上就是elasticsearch查询Range Query语法示例的详细内容,更多关于Elasticsearch查询Range Query的资料请关注编程网其它相关文章!
--结束END--
本文标题: Elasticsearch查询RangeQuery语法示例
本文链接: https://lsjlt.com/news/210743.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0