如何不以特定 id 为条件不在 DSL 查询中搜索
How to put not condition on particular id's not to search in DSL query
这是elasticsearch的字典模式 {'id': 3},{'id': 4},{'id': 5},{'id': 6}
下面是要搜索 'Country Owner.id.keyword' 和 'Territory Owner.id.keyword'
的查询
- 我需要提出一个条件,说明它不应使用 id: [3,4,5] 进行搜索,因此我的
output
将仅包含来自 6 的值 'ABC101'
如果存在
a = {'from': 0, 'size': 200,'query': {
'bool': {
'should': [
{
'terms': {
'Country Owner.id.keyword': [
'ABC101'
]
}
},
{
'terms': {
'Territory Owner.id.keyword': [
'ABC101'
]
}
}
]
}
}
}
您可以在 must_not
子句中使用 terms query
{
"query": {
"bool": {
"should": [
{
"terms": {
"Country Owner.id.keyword": [
"ABC101"
]
}
},
{
"terms": {
"Territory Owner.id.keyword": [
"ABC101"
]
}
}
],
"must_not": {
"terms": {
"id": [
3,
4,
5
]
}
}
}
}
}
这是elasticsearch的字典模式 {'id': 3},{'id': 4},{'id': 5},{'id': 6}
下面是要搜索 'Country Owner.id.keyword' 和 'Territory Owner.id.keyword'
的查询- 我需要提出一个条件,说明它不应使用 id: [3,4,5] 进行搜索,因此我的
output
将仅包含来自 6 的值'ABC101'
如果存在
a = {'from': 0, 'size': 200,'query': {
'bool': {
'should': [
{
'terms': {
'Country Owner.id.keyword': [
'ABC101'
]
}
},
{
'terms': {
'Territory Owner.id.keyword': [
'ABC101'
]
}
}
]
}
}
}
您可以在 must_not
子句中使用 terms query
{
"query": {
"bool": {
"should": [
{
"terms": {
"Country Owner.id.keyword": [
"ABC101"
]
}
},
{
"terms": {
"Territory Owner.id.keyword": [
"ABC101"
]
}
}
],
"must_not": {
"terms": {
"id": [
3,
4,
5
]
}
}
}
}
}