这是写过最短的一个博客了。
当查询语句中包含must与should的时候,发现should失效。那我们就把must改成must_not,逻辑再取反就可以了(无意中发现)。
希望能帮到大家,真TM有趣~
贴俩真实语句给大家看看把。
失败语句:
{
"from" : 0,
"size" : 100,
"query" : {
"bool" : {
"must" : [
{
"range" : {
"report_time" : {
"from" : "2020-04-10 17:38:15",
"to" : null,
"include_lower" : true,
"include_upper" : true,
"boost" : 1.0
}
}
}
],
"should" : [
{
"term" : {
"event_type.keyword" : {
"value" : "xx",
"boost" : 1.0
}
}
},
{
"term" : {
"event_type.keyword" : {
"value" : "yy",
"boost" : 1.0
}
}
}
],
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
"sort" : [
{
"report_time" : {
"order" : "desc"
}
}
]
}
成功语句:
{
"from" : 0,
"size" : 100,
"query" : {
"bool" : {
"must_not" : [
{
"range" : {
"report_time" : {
"from" : null,
"to" : 2020-04-10 17:38:15,
"include_lower" : true,
"include_upper" : true,
"boost" : 1.0
}
}
}
],
"should" : [
{
"term" : {
"event_type.keyword" : {
"value" : "xx",
"boost" : 1.0
}
}
},
{
"term" : {
"event_type.keyword" : {
"value" : "yy",
"boost" : 1.0
}
}
}
],
"adjust_pure_negative" : true,
"boost" : 1.0
}
},
"sort" : [
{
"report_time" : {
"order" : "desc"
}
}
]
}