我正在从elasticsearch索引中获取数据。 我想过滤掉某些列中包含null或空字符串值的文档。 然而,当我使用"缺少"或者"存在"方法我遇到了一些关于值的问题=""因为它们没有过滤掉并显示在结果中
我想过使用通配符,但是当处理ID中有多个单词的列时,它没有给出任何结果(例如:警报描述,警报ID,等等)
使用elasticsearch-1.3.2
我的代码缺少/存在:
{
"query" : {
"constant_score" : {
"filter" : {
"exists" : {
"field" : "myfield"
}
}
}
}
}
我的代码带有通配符:
{
query: {
bool: {
must: [
{
constant_score: {
filter: {
missing: {
field: trap_message.enterprise
}
}
}
}
]
must_not: [ ]
should: [ ]
}
}
from: 0
size: 10
sort: [ ]
facets: { }
}
答案 0 :(得分:0)
我会将exists过滤器与must_not结合起来。以下是搜索字段“authResult.address.state”
的示例GET index1/type1/_search
{
"size": 10,
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{
"exists": {
"field": "authResult.address.state"
}
}
],
"must_not": [
{
"term": {
"authResult.address.state": ""
}
}
]
}
}
}
}
}
答案 1 :(得分:0)
当我从GET切换到POST
时,它有效