【问题标题】:Setting up mapping for a JDBC elasticsearch river为 JDBC 弹性搜索河设置映射
【发布时间】:2013-04-07 09:43:36
【问题描述】:

我正在使用 ES 0.20.6 和 elasticsearch-river-jdbc plugin。 我创建了一条可以使用的河流:

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
    }
}'

现在我想要添加类型映射为the option is defined in the plugin documentation。但我真的无法弄清楚语法并且总是得到以下错误("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

【问题讨论】:

    标签: jdbc mapping elasticsearch elasticsearch-jdbc-river


    【解决方案1】:

    我认为您提交的内容甚至不是正确的 json 对象。我可以想象 type_mapping 对象必须包含映射,与您使用put mapping apicreating 索引提交的映射几乎相同。

    【讨论】:

    • 哇,谢谢。我什至没有想过。我正在使用连续的 json 表示法设置映射,但我需要在我的 json 对象中添加一个 json 字符串......这很有效:"type_mapping" : "{\"mytype\":{\"properties\":{\"active\":{\"type\":\"boolean\",\"store\":\"yes\"}}}}"。非常感谢!
    • 我必须补充一点,我正在使用 Chrome Sense,甚至 json 对象中的回车也是非常特别的。
    • 在 ElasticSearch 1.0.0 中你应该这样做:ondrej-kvasnovsky.blogspot.com/2013/10/…
    • 我无法让它工作。我有与上述问题类似的设置,但是,我根本无法设置单独的映射。它总是从我正在使用的 select 语句中动态映射。我做错了什么?
    猜你喜欢
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2011-11-19
    • 2014-10-30
    • 1970-01-01
    相关资源
    最近更新 更多