我在地理形状类型字段上有一些额外的内部字段。例如," shape"是一个地理形状类型字段,它具有常规必填字段,如"坐标","半径"等,但它也可能有其他字段,如"元数据"我希望elasticsearch不解析而不存储在索引中。例如:
"shape": {
"coordinates":[6.77,8.99]
"radius": 500
"metadata": "some value"
}
映射架构如下所示:
"shape":{
"type":"geo_shape"
}
我怎样才能做到这一点?通过在映射模式上使用" dynamic":false似乎不起作用。
答案 0 :(得分:0)
在您的根映射中将dynamic
设置为false
,就像您一样,是要走的路:您确定它不起作用吗?或者你是说这是因为它出现在你的结果中_source
?
实际上,默认情况下,_source
属性将包含您提交的完全相同的文档。
但是,这并不意味着额外的metadata
字段已编入索引和/或存储。
如果您想检查此内容,请在搜索中专门请求该字段,如下所示:
POST _search
{
"fields": ["shape.metadata"]
}
您应该拥有搜索匹配但没有任何fields
值。
如果它仍然困扰您,请停用映射中的_source
属性。