Elasticsearch 和 Spring 数据:如何使用别名重新索引
Elasticsearch and Spring Data: how to reindex with alias
我有一个这样注释的 bean:
@Document(indexName = "foo", type = "bar")
public class BarEntity {
private String someField = "";
}
"foo" 是 elasticsearch 中 foo-2016-11-04:
的别名
"foo-2016.11.04" : {
"aliases" : {
"foo" : { }
}
}
我想做的是将 someField 的索引更改为 not_analyzed:
@Document(indexName = "foo", type = "bar")
public class BarEntity {
@Field(index = FieldIndex.not_analyzed, type = FieldType.String)
private String someField = "";
}
据我所知,我必须创建一个新索引并将别名指向它,例如foo-2016.11.29.
如何使用 Spring 数据在 elasticeseach 2.3 中执行此操作?
我的 bean 链接到别名,我猜 Spring Data 会自动创建正确的索引。
我只是不知道如何通过别名创建索引。
我是先将 foo-2016.11.04 重新索引到 foo-2016.11.29,更新别名以指向新别名并重新部署 spring 应用程序,还是这里还有其他事情要做?
您不能通过别名创建索引,但您可以显式创建时间戳索引并使用索引模板自动将其分配给别名。
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/indices-templates.html
我有一个这样注释的 bean:
@Document(indexName = "foo", type = "bar")
public class BarEntity {
private String someField = "";
}
"foo" 是 elasticsearch 中 foo-2016-11-04:
的别名"foo-2016.11.04" : {
"aliases" : {
"foo" : { }
}
}
我想做的是将 someField 的索引更改为 not_analyzed:
@Document(indexName = "foo", type = "bar")
public class BarEntity {
@Field(index = FieldIndex.not_analyzed, type = FieldType.String)
private String someField = "";
}
据我所知,我必须创建一个新索引并将别名指向它,例如foo-2016.11.29.
如何使用 Spring 数据在 elasticeseach 2.3 中执行此操作?
我的 bean 链接到别名,我猜 Spring Data 会自动创建正确的索引。
我只是不知道如何通过别名创建索引。
我是先将 foo-2016.11.04 重新索引到 foo-2016.11.29,更新别名以指向新别名并重新部署 spring 应用程序,还是这里还有其他事情要做?
您不能通过别名创建索引,但您可以显式创建时间戳索引并使用索引模板自动将其分配给别名。
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/indices-templates.html