如何过滤掉弹性搜索中不存在的字段?

我想检查一个字段是否存在,并返回它不存在的文档的结果。我正在使用 Golang 库 Elastic:https : //github.com/olivere/elastic


我尝试了以下但它不起作用:


e := elastic.NewExistsFilter("my_tag")

n := elastic.NewNotFilter(e)

filters = append(filters, n)


慕尼黑8549860
浏览 214回答 3
3回答

猛跑小猪

好的,我不会深入研究您的语言查询 API。由于您要搜索不存在的字段(空),请exists在 a 内使用过滤器must_not(如果您使用 bool 过滤器):{  "query": {    "filtered": {      "filter": {        "bool": {          "must_not": [            {              "exists": {                "field": "your_field"              }            }          ]        }      }    }  },  "from": 0,  "size": 500}希望这可以帮助!

慕仙森

您可以使用带有bool 查询 must_not 的存在查询:GET /_search{    "query": {        "bool": {            "must_not": {                "exists": {                    "field": "your_field"                }            }        }    }}在 Elasticsearch 6.5 中测试

慕妹3146593

您可以为不存在创建一个布尔查询,如下所示:existsQuery := elastic.NewExistsQuery(fieldName)existsBoolQuery := elastic.NewBoolQuery().MustNot(existsQuery)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go