Elasticsearch 中不直接显示空白字段?
Empty fields aren't shown directly in Elasticsearch?
我用 Put Mapping API 添加了一个名为“title”的额外字段,然后尝试使用 GET index_name/type/_search 在我的索引上进行正常搜索,但记录没有显示任何带有“title”的字段在里面。是因为该字段没有内容吗?如果是这样,我如何获得没有内容的字段?
谢谢。
如果您启用了 _source
,elasticsearch 将 return 您发送给它的字段值(无论是否为空)。如下例所示。
{
"title" : "" // see empty value
}
并在响应
下方的此文档 ID return 上获取 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.
}
}
编辑:- 基于@Val 评论, 如果你想在旧文档中找到这个新添加的 title
字段,你没有索引这个字段,你将无法找到它,因为 elasticsearch 是无模式的,并且不强制你必须强制索引一个字段。您也可以 add/remove 字段而不更新映射,因为它是无模式的。
对于这个问题,即使你索引一个新文档,在映射中添加这个 title
字段后,不包括 title
字段,然后再次为该文档 title
字段将不会 returned。
我用 Put Mapping API 添加了一个名为“title”的额外字段,然后尝试使用 GET index_name/type/_search 在我的索引上进行正常搜索,但记录没有显示任何带有“title”的字段在里面。是因为该字段没有内容吗?如果是这样,我如何获得没有内容的字段?
谢谢。
如果您启用了 _source
,elasticsearch 将 return 您发送给它的字段值(无论是否为空)。如下例所示。
{
"title" : "" // see empty value
}
并在响应
下方的此文档 ID return 上获取 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.
}
}
编辑:- 基于@Val 评论, 如果你想在旧文档中找到这个新添加的 title
字段,你没有索引这个字段,你将无法找到它,因为 elasticsearch 是无模式的,并且不强制你必须强制索引一个字段。您也可以 add/remove 字段而不更新映射,因为它是无模式的。
对于这个问题,即使你索引一个新文档,在映射中添加这个 title
字段后,不包括 title
字段,然后再次为该文档 title
字段将不会 returned。