Elasticsearch 参考指南(映射参数enabled)
映射参数enabled
Elasticsearch尝试索引你提供给它的所有字段,但有时你希望只存储字段而不索引它,例如,假设你使用Elasticsearch作为web会话存储,你可能希望索引会话ID和上次更新时间,但不需要查询或运行会话数据本身的聚合。
enabled
设置只能应用于顶级映射定义和对象字段,这会导致Elasticsearch完全跳过字段内容的解析,JSON仍然可以从_source
字段中检索,但它不能搜索或以任何其他方式存储:
PUT my_index { "mappings": { "properties": { "user_id": { "type": "keyword" }, "last_updated": { "type": "date" }, "session_data": { "type": "object", "enabled": false } } } } PUT my_index/_doc/session_1 { "user_id": "kimchy", "session_data": { "arbitrary_object": { "some_array": [ "foo", "bar", { "baz": 2 } ] } }, "last_updated": "2015-12-06T18:20:22" } PUT my_index/_doc/session_2 { "user_id": "jpountz", "session_data": "none", "last_updated": "2015-12-06T18:22:13" }
- 禁用了
session_data
字段。 - 任何任意数据都可以传递到
session_data
字段,因为它将被完全忽略。 session_data
还将忽略非JSON对象的值。
整个映射也可能被禁用,在这种情况下,文档存储在_source
字段中,这意味着可以检索它,但是没有以任何方式索引它的内容:
PUT my_index { "mappings": { "enabled": false } } PUT my_index/_doc/session_1 { "user_id": "kimchy", "session_data": { "arbitrary_object": { "some_array": [ "foo", "bar", { "baz": 2 } ] } }, "last_updated": "2015-12-06T18:20:22" } GET my_index/_doc/session_1 GET my_index/_mapping
- 整个映射被禁用。
- 可以检索文档。
- 检查映射会发现没有添加任何字段。
无法更新现有字段的enabled
设置和顶级映射定义。
注意,由于Elasticsearch完全跳过了对字段内容的解析,所以可以将非对象数据添加到禁用的字段:
PUT my_index { "mappings": { "properties": { "session_data": { "type": "object", "enabled": false } } } } PUT my_index/_doc/session_1 { "session_data": "foo bar" }
- 成功添加文档,即使
session_data
包含非对象数据。
相关推荐
newbornzhao 2020-09-14
做对一件事很重要 2020-09-07
renjinlong 2020-09-03
明瞳 2020-08-19
李玉志 2020-08-19
mengyue 2020-08-07
molong0 2020-08-06
AFei00 2020-08-03
molong0 2020-08-03
wenwentana 2020-08-03
YYDU 2020-08-03
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。
sifeimeng 2020-08-03
心丨悦 2020-08-03
liangwenrong 2020-07-31
sifeimeng 2020-08-01
mengyue 2020-07-30
tigercn 2020-07-29
IceStreamLab 2020-07-29