【问题标题】:Elasticsearch reindex then cant add mappingElasticsearch 重新索引然后无法添加映射
【发布时间】:2021-09-19 08:53:23
【问题描述】:

您好 Elasticsearch 专家!想知道是否有人可以帮助解决正在发生的奇怪事情: 我们有一个索引,其中映射的数量已经变得庞大(超过 3000 个),我们希望通过重新索引来减少这种情况。在新索引中,我们将关闭动态映射,只添加我们想要用于搜索的映射。所以,我创建了一个新索引:

PUT /newindex-2021.01/_mapping
{
  "dynamic": "false",
  "date_detection": true,
  "properties": {
    "timestamp": {
      "type": "date"
    }
  }
}

然后我重新索引:

POST _reindex?wait_for_completion=false
{
  "source": {
    "index": "oldindex-2021.01"
  },
  "dest": {
    "index": "newindex-2021.01"
  }
}

然后我想为事件字段添加一个映射以测试一切是否正常,所以我运行了:

PUT /*newindex*/_mapping
{
  "properties": {
    "event": {
      "type": "text"
    }
  }
}

为了安全起见,我也跑了(不确定这是否有任何影响):

PUT /newindex-2021.0/_mapping
{
  "properties": {
    "event": {
      "type": "text"
    }
  }
}

当我导航到发现页面时,它现在会显示事件字段的放大镜(表明我可以仅搜索事件,因为已创建映射)。但是,当我单击它时,没有显示结果(好像没有文档具有字段事件 == 值,尽管它确实存在) 有什么我想念的吗?我只是想将映射添加到空索引.. 感谢您的帮助!

【问题讨论】:

    标签: elasticsearch kibana elasticsearch-7 kibana-7


    【解决方案1】:

    您无法更改已编入索引的文档的映射(事实上,这正是您正确地重新索引原始索引的原因)。重新索引后您所做的是将新映射添加到没有任何字段的字段,使其从现在开始可查询 - 即,仅适用于新文档,而不是追溯至现有文档。

    您需要使用已包含您正在查找的字段映射的映射重新索引索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-11
      • 2015-08-10
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 2021-02-16
      • 2019-04-16
      • 2018-08-24
      相关资源
      最近更新 更多