Elasticsearch - 获取具有字段名称的文档
Elasticsearch - get documents which have a field name
假设我将文档放入弹性搜索中,如下所示:
{
"name": "xyz",
"address": {
"pincode": "111111",
"area": "downtown"
}
}
我想获取所有包含 pincode
的文档。当然,在ES中输入的一些文档可能没有pincode
字段。
我尝试过类似的方法,但没有成功:
XGET _search
{
"query": {
"terms": {
"_field_names": [ "pincode" ]
}
}
}
您需要exists查询。
{
"query" : {
"filtered" : {
"filter" : {
"exists" : { "field" : "address.pincode" }
}
}
}
}
您需要使用 missing
filter. The exists
filter 如果该字段在您的文档中完全缺失,将无法使用。
{
"query": {
"filtered": {
"filter": {
"bool": {
"must_not": [
{
"missing": {
"field": "address.pincode"
}
}
]
}
}
}
}
}
假设我将文档放入弹性搜索中,如下所示:
{
"name": "xyz",
"address": {
"pincode": "111111",
"area": "downtown"
}
}
我想获取所有包含 pincode
的文档。当然,在ES中输入的一些文档可能没有pincode
字段。
我尝试过类似的方法,但没有成功:
XGET _search
{
"query": {
"terms": {
"_field_names": [ "pincode" ]
}
}
}
您需要exists查询。
{
"query" : {
"filtered" : {
"filter" : {
"exists" : { "field" : "address.pincode" }
}
}
}
}
您需要使用 missing
filter. The exists
filter 如果该字段在您的文档中完全缺失,将无法使用。
{
"query": {
"filtered": {
"filter": {
"bool": {
"must_not": [
{
"missing": {
"field": "address.pincode"
}
}
]
}
}
}
}
}