我希望构建查询以匹配嵌套且不相等的搜索。
这是我的elasticSearch查询:
{
"from":0,"size":1000,
"query":{
"nested" : {
"path" : "data",
"query" : {
"match" : {
"data.city" : "california"
}
}
},
"filter":{
"not":{
"filter":{
"term":{
"_id":"01921asda01201"
}
}
}
}
}
}
但是我得到了错误,我写错了什么?感谢
答案 0 :(得分:0)
您需要使用filtered query
GET _search
{
"query": {
"filtered": {
"query": {
"nested": {
"path" : "data",
"query" : {
"match" : {
"data.city" : "california"
}
}
}
},
"filter": {
"bool": {
"must_not": [
{
"term": {
"_id": "01921asda01201"
}
}
]
}
}
}
}
}
答案 1 :(得分:0)
您也可以function
使用define('WP_HOME','http:example.com');
define('WP_SITEURL','http:example.com');
和bool Filter
条款。
must
答案 2 :(得分:0)
您应该使用bool query,并将两个子句分别放在must
和must_not
部分。
如果您不关心data.city
字段的评分(从您的示例中看不清楚),您可能希望使用filter
部分代替must
部分{1}}部分。
{
"from": 0,
"size": 1000,
"query": {
"bool": {
"filter": [
{
"nested": {
"path": "data",
"query": {
"match": {
"data.city": "california"
}
}
}
}
],
"must_not": [
{
"term": {
"_id": "01921asda01201"
}
}
]
}
}
}