2015-10-15 76 views
3

我有一个现有elasticsearch指数,我想补充一个分析器,但是当我执行此命令添加同义词分析仪elasticsearch指数

{ 
"analysis" : { 
    "analyzer" : { 
     "synonym" : { 
      "tokenizer" : "whitespace", 
      "filter" : ["synonym"] 
     } 
    }, 
"filter" : { 
      "synonym" : { 
       "type" : "synonym", 
       "synonyms_path" : "synonym.txt", 
       "ignore_case" : true 
      } 
     } 
    } 
} 

我得到一个错误

{“错误” :“IndexAlreadyExistsException [Nuxeo的]已经存在]”,“状态”:400}

所以我以前删除索引添加或刷新同义词文件是不是很聪明 添加分析器存在简单的方法吗?或至少刷新它?谢谢

+0

您需要使用新分析仪重新创建索引。 –

回答

3

您需要先关闭索引,更新分析仪设置,然后打开索引。这是更新现有分析仪设置的唯一方法。请注意,它只适用于更改索引时未使用的分析仪,但使用

curl -XPOST 'localhost:9200/schoolrecords/_close' 
curl -XPUT 'localhost:9200/schoolrecords/_settings' -d '{ 
"analysis" : { 
    "analyzer" : { 
     "synonym" : { 
      "tokenizer" : "whitespace", 
      "filter" : ["synonym"] 
     } 
    }, 
"filter" : { 
      "synonym" : { 
       "type" : "synonym", 
       "synonyms_path" : "synonym.txt", 
       "ignore_case" : true 
      } 
     } 
    } 
}' 
curl -XPOST 'localhost:9200/schoolrecords/_open'