更新Elasticsearch索引需要更新Kibana索引模式吗?

3
我正在使用 Elasticsearch 和 Kibana 作为插件来查看索引中的数据。我正在使用 Kibana 的 DevTools 发送命令来添加/删除/更新索引等操作。
我想给某个文本属性添加一个字段,这样就可以使用关键字字段进行全文搜索和聚合。
1)这样的更改是否意味着我需要更新 Kibana 的索引模式?
2)我已经阅读了 ElasticSearch 的文档,知道如何使用 PUT Mappings 来更新索引本身,但我不知道如何更新索引模式。我读到应该使用相同的 API 进行更新,但我不知道如何查看索引模式的原始映射以便更新它。
1个回答

6
  1. 如果您更改了ES中的索引映射,则需要进入Kibana并刷新相关的索引模式。

  2. 现在,您需要进入Kibana (管理 > 索引模式),选择索引模式,并按窗口右上角的“刷新”按钮,以便获取映射更改。

还请注意,如果您更新了某些文本字段以具有关键字子字段,则还需要调用_update_by_query API 在您的索引上,以便在所有文档中重新索引已更改的字段


如果只需要刷新索引模式,那为什么Kibana本身会说(如果我理解正确的话)需要使用映射API来更新它呢?似乎很奇怪,因为我需要首先创建一个完整的索引模式,以便Kibana识别该索引,但当我更改它时,我可以简单地刷新它并接受更改。 - CodeMonkey
关于update_by_query,我不确定它究竟做什么...我猜对于一个新字段,它将简单地将与属性中相同的值添加到该字段中?但是如果我在添加新属性后运行它,我不明白它需要更新什么 - 如果它是一个没有值的新属性,它究竟要更新什么? - CodeMonkey
起初,您只有“text”字段,因此在索引文档时,该字段的数据按照“text”字段的规则进行了索引。然后,您更新了映射以添加一个“keyword”子字段,但是所有现有数据尚未按照新关键字字段的规则进行索引。为此,您需要调用update_by_query,并且所有现有数据将根据“text”和“keyword”字段的规则重新索引。 - Val
我已更新了索引并重新加载了索引模式。当我尝试运行更新查询命令时,出现错误代码504 - 网关超时。我读到说更长的超时时间可能会解决这个问题。你知道这个操作的适当超时时间是多少吗? - CodeMonkey
您不需要看到任何超时,任务仍在后台进行中。您可以通过运行 GET _tasks?actions=*byquery&detailed 查询任务来检查更新的状态。 - Val

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接