我正在将ES 0.20.6与elasticsearch -river- jdbc插件一起使用。我使用以下方法创建了一条河:
SQL="SELECT ..." curl -XPUT 'localhost:9200/_river/myindex_river/_meta' -d '{ "type" : "jdbc", "jdbc" : { "driver" : "org.postgresql.Driver", "url" : "jdbc:postgresql://localhost:5432/mydb_db", "user" : "myuser", "password" : "mypassword", "sql" : "'"$SQL"'" }, "index" : { "index" : "myindex", "type" : "mytype", "type_mapping" : null } }'
现在,我要添加的类型映射为插件文档中定义的选项。但我真的无法弄清楚语法,总是会收到以下错误("Source: "部分内容因我的尝试而异)
"Source: "
org.elasticsearch.index.mapper.MapperParsingException: Failed to parse mapping definition at org.elasticsearch.index.mapper.DocumentMapperParser.extractMapping(DocumentMapperParser.java:237) at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:147) at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:379) at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:375) at org.elasticsearch.cluster.metadata.MetaDataMappingService$4.execute(MetaDataMappingService.java:309) at org.elasticsearch.cluster.service.InternalClusterService$2.run(InternalClusterService.java:223) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.elasticsearch.common.jackson.core.JsonParseException: Unexpected character ('=' (code 61)): was expecting a colon to separate field name and value at [Source: {mytype={properties={active={index_analyzer=standard, store=yes, type=boolean}}}}; line: 1, column: 9] at org.elasticsearch.common.jackson.core.JsonParser._constructError(JsonParser.java:1378) at org.elasticsearch.common.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:599) at org.elasticsearch.common.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:520) at org.elasticsearch.common.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:616) at org.elasticsearch.common.xcontent.json.JsonXContentParser.nextToken(JsonXContentParser.java:48) at org.elasticsearch.common.xcontent.support.XContentMapConverter.readMap(XContentMapConverter.java:70) at org.elasticsearch.common.xcontent.support.XContentMapConverter.readOrderedMap(XContentMapConverter.java:60) at org.elasticsearch.common.xcontent.support.AbstractXContentParser.mapOrdered(AbstractXContentParser.java:116) at org.elasticsearch.index.mapper.DocumentMapperParser.extractMapping(DocumentMapperParser.java:235) ... 8 more
我认为您提交的东西甚至都不是正确的json对象。我可以想象到type_mapping对象必须包含映射,与使用put映射api或创建索引所提交的映射几乎相同。