2014-02-25 25 views
1

我想使用elasticsearch jdbc jriver插件與自定義index_settings,但它似乎無法創建索引。這裏是我的字符串:使用彈性搜索jriver jdbc插件與索引設置時出錯

# search channels 
PUT /_river/tetours/_meta 
{ 
    "type": "jdbc", 
    "jdbc": { 
     "driver": "com.mysql.jdbc.Driver", 
     "url": "jdbc:mysql://localhost:3306/test", 
     "user": "blah", 
     "password": "******", 
     "sql": "SELECT id AS _id,title,city FROM channel where active=1", 
     "strategy": "simple", 
     "autocommit": true, 
     "index": "teindex", 
     "type": "tours", 
     "index_settings" : "{ \"analysis\" : { \"analyzer\": { \"tindex_analyzer\": { \"tokenizer\": \"standard\", \"filter\": [\"standard\",\"lowercase\"]},\"tsearch_analyzer\": {\"tokenizer\": \"standard\",\"filter\": [\"standard\",\"synonym\",\"lowercase\"]}}, \"filter\" : { \"synonym\" : { \"type\" : \"synonym\", \"synonyms_path\" : \"analysis/synonym.txt\" }}}}", 
     "type_mapping": "{ \"tours\": {\"properties\": {\"title\": { \"type\": \"string\",\"index\": \"analyzed\", \"index_analyzer\": \"tindex_analyzer\", \"search_analyzer\": \"tsearch_analyzer\", \"store\": \"yes\"}}}}",  
     "poll": "15m" 
    } 
} 

,這裏是我在日誌文件中收到錯誤消息:

[2014-02-25 05:45:48,183][DEBUG][action.admin.indices.settings] [Miles Warren] failed to update settings on indices [teindex] 
org.elasticsearch.ElasticSearchIllegalArgumentException: Can't update non dynamic settings[[index.analysis.analyzer.tindex_analyzer.tokenizer, index.analysis.analyzer.tsearch_analyzer.tokenizer, index.analysis.analyzer.tindex_analyzer.filter.0, index.analysis.analyzer.tsearch_analyzer.filter.0]] for open indices[[teindex]] 
     at org.elasticsearch.cluster.metadata.MetaDataUpdateSettingsService$2.execute(MetaDataUpdateSettingsService.java:248) 
     at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:300) 
     at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:135) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:744) 
[2014-02-25 05:45:48,183][WARN ][org.xbib.elasticsearch.river.jdbc.JDBCRiver] [Miles Warren] [jdbc][tetours] failed to create index [teindex], disabling JDBC river... 
org.elasticsearch.ElasticSearchIllegalArgumentException: Can't update non dynamic settings[[index.analysis.analyzer.tindex_analyzer.tokenizer, index.analysis.analyzer.tsearch_analyzer.tokenizer, index.analysis.analyzer.tindex_analyzer.filter.0, index.analysis.analyzer.tsearch_analyzer.filter.0]] for open indices[[teindex]] 
     at org.elasticsearch.cluster.metadata.MetaDataUpdateSettingsService$2.execute(MetaDataUpdateSettingsService.java:248) 
     at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:300) 
     at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:135) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:744) 

任何人都可以找出什麼地方出了錯?語法看起來正確。

回答