我正在使用Sense(Chrome插件),我设法设置了分析仪,它运行正常。如果我在设置上发出GET(/ media / _settings),则返回以下内容。
{
"media": {
"settings": {
"index": {
"creation_date": "1424971612982",
"analysis": {
"analyzer": {
"folding": {
"filter": [
"lowercase",
"asciifolding"
],
"tokenizer": "standard"
}
}
},
"number_of_shards": "5",
"uuid": "ks98Z6YCQzKj-ng0hU7U4w",
"version": {
"created": "1040499"
},
"number_of_replicas": "1"
}
}
}
}
我正在尝试通过执行以下操作来更新它:
关闭索引
发出此PUT命令(删除过滤器)
PUT /media/_settings
{
"settings": {
"analysis": {
"analyzer": {
"folding": {
"tokenizer": "standard",
"filter": [ "lowercase" ]
}
}
}
}
}
打开索引
但是当设置返回时,不会删除过滤器。一旦你创建了分析仪,你能否更新它?
答案 0 :(得分:9)
简短回答:不。
更长的答案。来自ES docs:
"虽然您可以向索引添加新类型,或向a添加新字段 输入类型,您无法添加新分析器或对现有字段进行更改。 如果您这样做,那么已编入索引的数据将是 不正确,您的搜索将无法按预期工作。"
最好的方法是创建新索引并移动数据。有些客户有助手为您执行此操作,但它不是标准Java客户端的一部分。
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/reindex.html