Elasticsearch - 查找缺少两个字段的文档
Elasticsearch - Find documents missing two fields
我正在尝试创建一个查询,其中 return 的信息是关于有多少文档没有两个字段(date.new 和 date.old)的数据。我尝试了下面的查询,但它作为 OR 逻辑工作,其中缺少 date.new 或 date.old 的所有文档都被 returned。有谁知道我如何才能使 return 文档缺少这两个字段?
{
"aggs":{
"Missing_field_count1":{
"missing":{
"field":"date.new"
}
},
"Missing_field_count2":{
"missing":{
"field":"date.old"
}
}
}
}
聚合不是为此使用的功能。您需要使用 exists
query wrapped within a bool/must_not
查询,如下所示:
GET index/_count
{
"size": 0,
"bool": {
"must_not": [
{
"exists": {
"field": "date.new"
}
},
{
"exists": {
"field": "date.old"
}
}
]
}
}
hits.total.value表示匹配搜索请求的文档数。该值表示匹配的命中数,关系表示该值是准确的 (eq) 还是下限 (gte)
索引数据:
{
"data": {
"new": 1501,
"old": 10
}
}
{
"title": "elasticsearch"
}
{
"title": "elasticsearch-query"
}
{
"date": {
"new": 1400
}
}
@Val 给出的搜索查询回答了如何实现您的用例。
搜索结果:
"hits": {
"total": {
"value": 2, <-- note this
"relation": "eq"
},
"max_score": 0.0,
"hits": [
{
"_index": "65112793",
"_type": "_doc",
"_id": "2",
"_score": 0.0,
"_source": {
"title": "elasticsearch"
}
},
{
"_index": "65112793",
"_type": "_doc",
"_id": "5",
"_score": 0.0,
"_source": {
"title": "elasticsearch-query"
}
}
]
}
我正在尝试创建一个查询,其中 return 的信息是关于有多少文档没有两个字段(date.new 和 date.old)的数据。我尝试了下面的查询,但它作为 OR 逻辑工作,其中缺少 date.new 或 date.old 的所有文档都被 returned。有谁知道我如何才能使 return 文档缺少这两个字段?
{
"aggs":{
"Missing_field_count1":{
"missing":{
"field":"date.new"
}
},
"Missing_field_count2":{
"missing":{
"field":"date.old"
}
}
}
}
聚合不是为此使用的功能。您需要使用 exists
query wrapped within a bool/must_not
查询,如下所示:
GET index/_count
{
"size": 0,
"bool": {
"must_not": [
{
"exists": {
"field": "date.new"
}
},
{
"exists": {
"field": "date.old"
}
}
]
}
}
hits.total.value表示匹配搜索请求的文档数。该值表示匹配的命中数,关系表示该值是准确的 (eq) 还是下限 (gte)
索引数据:
{
"data": {
"new": 1501,
"old": 10
}
}
{
"title": "elasticsearch"
}
{
"title": "elasticsearch-query"
}
{
"date": {
"new": 1400
}
}
@Val 给出的搜索查询回答了如何实现您的用例。
搜索结果:
"hits": {
"total": {
"value": 2, <-- note this
"relation": "eq"
},
"max_score": 0.0,
"hits": [
{
"_index": "65112793",
"_type": "_doc",
"_id": "2",
"_score": 0.0,
"_source": {
"title": "elasticsearch"
}
},
{
"_index": "65112793",
"_type": "_doc",
"_id": "5",
"_score": 0.0,
"_source": {
"title": "elasticsearch-query"
}
}
]
}