我在弹性搜索服务器上创建了一个索引,其中包含以下设置:
PUT /myindex
{
"settings": {
"number_of_replicas": 0,
"analysis": {
"analyzer": {
"default": {
"tokenizer": "standard",
"filter": [ "lowercase", "asciifolding" ]
}
}
}
}
}
添加了大量文档后,我使用以下请求更新了索引设置:
PUT /myindex/_settings
{
"settings": {
"analysis": {
"analyzer": {
"default": {
"tokenizer": "standard",
"filter": [ "asciifolding" ]
}
}
}
}
}
并删除了索引lowercase
过滤器,但似乎该索引上的所有文档仍然使用lowercase
过滤进行索引。我是否应该重新索引我的所有文档(叹息)或者是否有任何方法可以告诉elasticsearch考虑我的新过滤器设置来更新所有文档?
答案 0 :(得分:1)
你需要重新索引,基本上底层的lucene索引段是不可变的。如果您有新的ES版本,此API将为您提供帮助:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html否则您必须使用搜索和滚动或仅从原始来源重新获取数据