是时候用 ES 拯救发际线啦

帮忙看一下DSL是否有问题

Elasticsearch | 作者 elasticStack | 发布于2018年07月23日 | 阅读数:2903

 
{
"query": {
"bool": {
"filter": [{
"range": {
"datatime": {
"gte": "1531629224",
"lte": "1531756799"
}
}
}, {
"term": {
"comid": {
"value": "8a9bcf3d1be1b632eb8c"
}
}
}, {
"bool": {
"must": [{
"bool": {
"should": [{
"term": {
"group": {
"value": "1"
}
}
}, {
"term": {
"group": {
"value": "127"
}
}
}, {
"term": {
"group": {
"value": "128"
}
}
}, {
"term": {
"group": {
"value": "129"
}
}
}, {
"term": {
"group": {
"value": "130"
}
}
}, {
"term": {
"group": {
"value": "131"
}
}
}, {
"term": {
"group": {
"value": "132"
}
}
}, {
"term": {
"group": {
"value": "133"
}
}
}, {
"term": {
"group": {
"value": "134"
}
}
}, {
"term": {
"group": {
"value": "135"
}
}
}, {
"term": {
"group": {
"value": "136"
}
}
}, {
"term": {
"group": {
"value": "137"
}
}
}, {
"term": {
"group": {
"value": "138"
}
}
}, {
"term": {
"group": {
"value": "139"
}
}
}, {
"term": {
"group": {
"value": "140"
}
}
}, {
"term": {
"group": {
"value": "141"
}
}
}, {
"term": {
"group": {
"value": "142"
}
}
}, {
"term": {
"group": {
"value": "143"
}
}
}, {
"term": {
"group": {
"value": "144"
}
}
}, {
"term": {
"group": {
"value": "145"
}
}
}, {
"term": {
"group": {
"value": "146"
}
}
}, {
"term": {
"group": {
"value": "328"
}
}
}, {
"term": {
"group": {
"value": "329"
}
}
}, {
"term": {
"group": {
"value": "330"
}
}
}, {
"term": {
"group": {
"value": "331"
}
}
}, {
"term": {
"group": {
"value": "332"
}
}
}, {
"term": {
"group": {
"value": "333"
}
}
}, {
"term": {
"group": {
"value": "334"
}
}
}, {
"term": {
"group": {
"value": "335"
}
}
}, {
"term": {
"group": {
"value": "336"
}
}
}, {
"term": {
"group": {
"value": "337"
}
}
}, {
"term": {
"group": {
"value": "338"
}
}
}, {
"term": {
"group": {
"value": "339"
}
}
}, {
"term": {
"group": {
"value": "340"
}
}
}, {
"term": {
"group": {
"value": "341"
}
}
}, {
"term": {
"group": {
"value": "342"
}
}
}, {
"term": {
"group": {
"value": "343"
}
}
}, {
"term": {
"group": {
"value": "344"
}
}
}, {
"term": {
"group": {
"value": "345"
}
}
}, {
"term": {
"group": {
"value": "346"
}
}
}, {
"term": {
"group": {
"value": "347"
}
}
}]
}
}]
}
}]
}
},
"_source": {
"includes": []
},
"sort": [{
"datatime": {
"order": "desc"
}
}],
"from": "0",
"size": "100"
}
帮忙看一下使用filter过滤数据,这样的写法should需要增加"min_match_should"参数吗

 
已邀请:

rochy - rochy_he

赞同来自: elasticStack

最后一个 bool_query 推荐你使用 terms_query 进行替换即可

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自: elasticStack

除了楼上的建议,对于写法should需要增加"min_match_should"参数吗?
看您的需求,需要同时满足多个的话,就需要设置min_match_should,
比如:term多个里面至少需要3个满足,那么:min_match_should 设置为3.

elasticStack - 90后it大数据男

赞同来自:

{
"query": {
"bool": {
"filter": [{
"range": {
"datatime": {
"gte": "1531629224",
"lte": "1531756799"
}
}
}, {
"term": {
"comid": {
"value": "8a9bcf3d1be1b632eb8c"
}
}
}, {
"terms":{
"group":["1", "127", "128", "129", "130", "131", "132", "133", "134", "135",]
}
}
]
}
},
"_source": {
"includes": []
},
"sort": [{
"datatime": {
"order": "desc"
}
}],
"from": "0",
"size": "100"
}
group可以简化为以上写法, 官网上这部分链接https://www.elastic.co/guide/e ... .html

要回复问题请先登录注册