Elasticsearch 获取 属性 不为空的文档
Elasticsearch get documents where a property is not empty
如果我想 return 所有空 属性 (IMG
) 的文档,我可以这样做:
GET something/_search/?
{
"query": {
"term": {"IMG": ""}
}
}
之所以有效,是因为 IMG
是关键字。如果我想要 exact inverse,这意味着获取所有 IMG
不为 null 的文档,我应该输入什么?是否有 "inverse" of term
查询?
换句话说,Elasticsearch 是否有办法 获取 属性 不为空 的文档?
这是一个解决方案。使用 must_not
和 term
查询。这应该有效:
GET memoire/_search/?
{
"query": {
"bool": {
"must_not": {
"term": {"IMG.keyword": ""}
}
}
}
}
你上面的解决方案也会 return 记录字段为空的地方,我猜你不希望这样。所以正确的解决方案是这个:
GET memoire/_search/?
{
"query": {
"bool": {
"filter": {
"exists": {
"field": "test"
}
},
"must_not": {
"term": {
"test.keyword": ""
}
}
}
}
}
如果我想 return 所有空 属性 (IMG
) 的文档,我可以这样做:
GET something/_search/?
{
"query": {
"term": {"IMG": ""}
}
}
之所以有效,是因为 IMG
是关键字。如果我想要 exact inverse,这意味着获取所有 IMG
不为 null 的文档,我应该输入什么?是否有 "inverse" of term
查询?
换句话说,Elasticsearch 是否有办法 获取 属性 不为空 的文档?
这是一个解决方案。使用 must_not
和 term
查询。这应该有效:
GET memoire/_search/?
{
"query": {
"bool": {
"must_not": {
"term": {"IMG.keyword": ""}
}
}
}
}
你上面的解决方案也会 return 记录字段为空的地方,我猜你不希望这样。所以正确的解决方案是这个:
GET memoire/_search/?
{
"query": {
"bool": {
"filter": {
"exists": {
"field": "test"
}
},
"must_not": {
"term": {
"test.keyword": ""
}
}
}
}
}