正在对下面的2个字段进行匹配搜索,但是如果ownerIdNo
为null,则我不希望为此进行搜索。
{
"query": {
"bool": {
"must": [
{
"match": {
"idNo": "3504"
}
},
{
"match": {
"ownerIdNo": "null"
}
}
]
}
}
}
伪代码如下:
matchSearchFor(idNo);
if(ownerIdNo != null){
matchSearchFor(ownerIdNo);
}
最佳答案
如果不能以 flex 方式添加,则不能添加-DSL这不是一种程序语言。
您想要选择文档(ownerIdNo为null或idNo“:” 3504“)。在elasticsearch中,您必须使用should子句(OR)。
{
"query": {
"bool": {
"should": [
{
"match": {
"idNo": "3504"
}
},
{
"bool": {
"must_not": [ --> null fields are not stored in documents
{
"match": {
"ownerIdNo": "null"
}
}
]
}
}
],
"minimum_should_match": 1
}
}
}
关于elasticsearch - Elasticsearch中的空检查条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61662607/