我有一个像
这样的SQL查询select student_name,roll_number
from
mytable
where
(course = 'CCNA' or course = 'MCSE') and course NOT Like '%network%'
如何在nested boolean query
中创建等效的elasticsearch
?
答案 0 :(得分:2)
以下查询可能会对您有所帮助,此查询会回复哪些课程不包含"网络"关键字和课程有价值" ccna"或" mcse"。 我没有考虑过区分大小写功能,并假设您有一个默认映射。
POST study-doc*/_search
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"term": {
"course": {
"value": "ccna"
}
}
},{
"term": {
"course": {
"value": "msce"
}
}
}
]
}},
{
"bool": {
"must": [
{
"wildcard": {
"course.keyword": {
"value": "^((?!network).)*$"
}
}
}
]
}
}
]
}
}
}