Elasticsearch 重新索引然后无法添加映射
Elasticsearch reindex then cant add mapping
嗨,Elasticsearch 专家!想知道是否有人可以帮助解决正在发生的 st运行ge 事情:
我们有一个索引,其中的映射数量已经变得非常庞大(超过 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 专家!想知道是否有人可以帮助解决正在发生的 st运行ge 事情: 我们有一个索引,其中的映射数量已经变得非常庞大(超过 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"
}
}
}
当我导航到发现页面时,它现在显示事件字段的放大镜(表示我可以在创建映射时仅搜索事件)。但是,当我单击它时,没有显示任何结果(就好像没有文档具有字段事件 == 尽管它肯定存在的值) 有什么我想念的吗?我只是想添加一个映射到一个空索引.. 感谢您的帮助!
您不能更改已编入索引的文档的映射(事实上,这正是您正确重新索引原始索引的原因)。重建索引后您所做的是将新映射添加到一个没有任何字段的字段,使其从现在开始可查询 - 即仅针对新文档,而不是追溯至现有文档。
您需要重新索引到一个映射已经包含您要查找的字段映射的索引。