使用文档删除现有索引上的索引筛选器设置

时间:2016-06-23 14:30:22

标签: elasticsearch

我在弹性搜索服务器上创建了一个索引,其中包含以下设置:

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考虑我的新过滤器设置来更新所有文档?

1 个答案:

答案 0 :(得分:1)

你需要重新索引,基本上底层的lucene索引段是不可变的。如果您有新的ES版本,此API将为您提供帮助:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html否则您必须使用搜索和滚动或仅从原始来源重新获取数据