must:与关系,相当于关系型数据库中的 and。
should:或关系,相当于关系型数据库中的 or。
must_not:非关系,相当于关系型数据库中的 not。
filter:过滤条件。
range:条件筛选范围。
gt:大于,相当于关系型数据库中的 >。
gte:大于等于,相当于关系型数据库中的 >=。
lt:小于,相当于关系型数据库中的 <。文章来源:https://www.toymoban.com/news/detail-504032.html
lte:小于等于,相当于关系型数据库中的 <=文章来源地址https://www.toymoban.com/news/detail-504032.html
#创建索引
PUT /items
#初始化数据
POST /items/_bulk
{ "index": { "_id": 1 }}
{ "price" : 40, "itemID" : "ID1001" }
{ "index": { "_id": 2 }}
{ "price" : 50, "itemID" : "ID1002" }
{ "index": { "_id": 3 }}
{ "price" : 25, "itemID" : "ID1004" }
{ "index": { "_id": 4 }}
{ "price" : 30, "itemID" : "ID1004" }
{ "index": { "_id": 5 }}
{ "price" : null, "itemID" : "ID1005" }
GET items/_mapping
GET items/_search
{
"query": {
"match_all": {}
}
}
#查询价格等于25,并且ItemID是ID1004
GET items/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"price": "25"
}
},
{
"term": {
"itemID": "id1004"
}
}
]
}
}
}
# 过滤查询价格等于40
GET items/_search
{
"query": {
"bool": {
"filter": [
{"term": {
"price": "40"
}}
]
}
}
}
#过滤价格是30至50
GET items/_search
{
"query": {
"bool": {
"filter": [
{"range": {
"price": {
"gte": 30,
"lte": 50
}
}}
]
}
}
}
# 查询价格是25或itemID是ID1004,同时价格不为30
GET items/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"price": 25
}
},
{
"term": {
"itemID": "id1004"
}
}
],
"must_not": [
{"term": {
"price": 30
}}
]
}
}
}
DELETE items
到了这里,关于ES的bool查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!