我有两个不同的查询,我想将它们与'OR'/'AND'组合在一起.我怎么做?
例如,对于给定的查询,我只想在elasticsearch中运行Query1或Query2.
查询1:
{
"query": {
"filtered": {
"query": {
"query_string":{
"query":"Batman",
"default_operator":"AND",
"fields"::[
"Movies._all"
]
}
},
"filter": {
"bool": {
"must": [
{
"query":{
"filtered":{
"filter":{
"and":[
{
"term":{
"cast.firstName":"Christian "
}
},
{
"term":{
"cast.lastName":"Bale"
}
}
]
}
}
}
}
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
QUERY2:
{
"query": {
"filtered": {
"query": {
"query_string":{
"query":"Dark Knight",
"default_operator":"AND",
"fields"::[
"Movies._all"
]
}
},
"filter": {
"bool": {
"must": [
{
"query":{
"filtered":{
"filter":{
"and":[
{
"term":{
"director.firstName":"Christopher"
}
},
{
"term":{
"director.lastName":"Nolan"
}
}
]
}
}
}
}
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Vin*_*han 12
你需要使用bool查询 下面的东西会工作正常 -
{
"query" : {
"bool" : {
"must" : [
{ // Query1 },
{ // Query2}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
对AND使用必须,对OR应使用
归档时间: |
|
查看次数: |
8352 次 |
最近记录: |