如果我更改映射以使某些属性具有新的/不同的提升值,即使文档已被索引,这是否也有效?或者在文档编入索引时应用提升值吗?
答案 0 :(得分:2)
索引数据后,无法更改字段级提升因子。一旦已经为先前数据编制了相同的字段,就不可能将新数据编入索引。
更改提升因子的唯一方法是重新索引数据。在不更改应用程序代码的情况下执行此操作的模式是使用别名。别名指向特定索引。如果要更改索引,则创建新索引,然后将旧索引中的数据重新索引到新索引,最后将别名更改为指向新索引。弹性搜索库可以支持重新索引数据,也可以通过扫描/滚动来实现。
第一个版本的映射
索引:items_v1
Alias:items - > items_v1
使用新的字段级别提升值更改必要的第二版索引:
创建新索引:items_v2
重新索引数据:items_v1 => items_v2
更改别名:items - > items_v2
在您想要更改映射的其他情况下,这可能很有用。
但不建议使用现场级别提升。更好的方法是在查询时使用提升。
别名命令是:
添加别名
POST /_aliases
{
"actions": [
{ "add": {
"alias": "tems",
"index": "items_v1"
}}
]
}
删除别名
POST /_aliases
{
"actions": [
{ "remove": {
"alias": "tems",
"index": "items_v1"
}}
]
}
答案 1 :(得分:0)
他们没有。
通常不建议提高索引时间。相反,你应该在搜索时进行提升。