当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch-地理形状类型索引上的额外未映射字段

解念
2023-03-14

在geo形状类型的字段上有一些额外的内部字段。例如,“shape”是一个geo-shape类型的字段,它有规则的必填字段,如“坐标”、“半径”等,但它也可能有其他字段,如“元数据”,我希望elasticsearch不要解析这些字段,也不要将其存储在索引中。例如:

"shape": {
   "coordinates":[6.77,8.99]
   "radius": 500
   "metadata": "some value"
}

映射架构如下所示:

"shape":{
   "type":"geo_shape"
}

我怎样才能做到这一点?通过使用“动态”:false映射模式似乎不起作用。

共有1个答案

王宏扬
2023-03-14

与您一样,在根映射中将动态设置为false是一种方法:您确定它无效吗?或者你这么说是因为它出现在你的结果hit源代码中?

实际上,默认情况下,源属性将包含与您提交的文档完全相同的文档。

但是,这并不意味着额外的元数据字段已被索引和/或存储。如果您想检查这一点,请在搜索中特别请求该字段,如下所示:

POST _search
{
  "fields": ["shape.metadata"]
}

您应该有搜索命中,但没有任何字段值。

如果仍然困扰您,请在映射中禁用“源”属性。

 类似资料:
  • 因此,我的文档(帖子)中有一个位置字段。此位置字段是一个地理形状。它可以是一个点或多边形。有时,我可能不得不使用地理距离过滤器来获取标记最接近某个坐标的帖子(仅具有键入地理形状,而不是多边形)。然而,在尝试使用geo_距离过滤器时,我遇到了以下错误。 是否有一种方法可以在类型的地理图形上使用地理距离过滤器?

  • 我目前正在使用ElasticSearch(PHP客户端)构建一个电子商务系统搜索,但遇到了一个问题 我存储的数据是简单文本(如产品名称)和列表(如颜色、大小)的混合体 我遇到的问题是当产品没有任何颜色时 我有以下字段 所以当我发送一个产品时,它看起来是这样的 这就像预期的一样,但是当我尝试发送这样的东西时 它抛出了一个错误: {“error”:{“root_cause”:[{“type”:“map

  • 问题内容: 我正在努力完成索引创建这一简单任务,目标是使用分析器和字段映射创建索引。当我使用分析器创建索引时,我可以通过分析api调用与分析器通信,但是当我添加映射信息时,创建索引调用失败,并显示“字段[$ field]]找不到Analyzer [analyzer1]”,我创建了一个脚本来显示问题: 问题答案: 我相信您的问题是这些设置需要嵌套在JSON的一个节点内,而不是您所拥有的嵌套在一个节点

  • 问题内容: 我在elasticsearch网站上找到了一篇文章,描述了如何“在不停机的情况下重新编制索引”,但是每次引入需要自定义映射的新元素时,这实际上是不可接受的(http://www.elasticsearch.org/blog/changing- 零停机时间映射/ ) 有谁知道为什么我不能为Elasticsearch中的现有索引创建映射,而是为新类型创建映射?该类型尚不存在,为什么不呢?也

  • 根据postgresql(postgis)方法,此几何是有效的,但是Elasticsearch在索引时抛出illegal_argument_exception错误 https://gist.github.com/owexroasia/127c61ee41304fe2d2d0e0015216a780 {"type":"mapper_parsing_exception","原因":"未能解析类型[ge

  • 我对弹性搜索一无所知。所以,如果这是一个愚蠢的问题,请原谅我,我的问题可能已经在其他地方得到了回答,但我找不到。我想使用弹性搜索作为我的网络中PDF和docx的搜索引擎。我使用fscrawler将PDF文件吸收到弹性搜索中。因为我要摄取的文档是几种语言的,所以我想使用n-graming进行词干分析。为此,我想像这样更新我的映射 现在我收到了这个错误信息 {“error”:{“root_cause”