_ignored 字段编辑

_ignored 字段索引并存储文档中每个在文档被索引时被忽略的字段的名称。例如,当字段格式错误且 ignore_malformed 被打开时,当 keyword 字段的值超过其可选的 ignore_above 设置时,或者当达到 index.mapping.total_fields.limit 并且 index.mapping.total_fields.ignore_dynamic_beyond_limit 设置为 true 时,都可能出现这种情况。

可以使用 termtermsexists 查询搜索此字段,并且作为搜索结果的一部分返回。

例如,以下查询匹配具有一个或多个被忽略字段的所有文档

response = client.search(
  body: {
    query: {
      exists: {
        field: '_ignored'
      }
    }
  }
)
puts response
GET _search
{
  "query": {
    "exists": {
      "field": "_ignored"
    }
  }
}

类似地,以下查询查找其 @timestamp 字段在索引时被忽略的所有文档

response = client.search(
  body: {
    query: {
      term: {
        _ignored: '@timestamp'
      }
    }
  }
)
puts response
GET _search
{
  "query": {
    "term": {
      "_ignored": "@timestamp"
    }
  }
}