elasticsearch中不直接显示空字段?

e7arh2l6  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(1)|浏览(421)

我用put mapping api添加了一个名为“title”的额外字段,然后用get index\u name/type/\u search对我的索引进行普通搜索,但记录中没有显示任何包含“title”的字段。是因为字段中没有内容吗?如果是这样,如何获取没有内容的字段?
谢谢您。

djmepvbi

djmepvbi1#

如果你有 _source 如果启用,elasticsearch将返回您发送给它的字段值(无论是否为空)。如下例所示。

{
  "title" : "" // see empty value
}

获取此文档id上的api返回以下响应

{
    "_index": "newso",
    "_type": "_doc",
    "_id": "1",
    "_version": 2,
    "_seq_no": 1,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "title": "" // same value is returned in response.
    }
}

edit:- based 在@val comment上,如果您希望找到这个新添加的 title 字段在旧文档中,如果您没有索引此字段,您将无法找到它,因为elasticsearch没有架构,并且不强制您必须为字段编制索引。您还可以添加/删除字段,而无需将Map更新为无模式。
对于这个问题,即使您索引了一个新文档,在添加这个之后 title 字段,并且不包括 title 字段,然后再次输入该文档 title 字段将不返回。

相关问题