mysql - Elasticsearch river, convert longitude latitude to geo_point -
i'm using mysql jprante jdbc river plugin elasticsearch index data mysql.
in recordset have fields longitude (float
), latitude (float
), pin (point
), how can preset them detected geo_point
in elasticsearch?
i have tried :
curl -xput 'localhost:9200/_river/mysql_jdbc_river/_meta' -d '{ "type": "jdbc", "jdbc": { "strategy": "simple", "driver": "com.mysql.jdbc.driver", "url": "jdbc:mysql://localhost:3306/somedatabase", "user": "someuser", "password": "somepassword", "sql": "select * activities", "poll": "30m", "rounding": null, "scale": 0, "autocommit": false, "fetchsize": 10, "max_rows": 0, "max_retries": 3, "max_retries_wait": "10s", "digesting": true, "acksql": null, "acksqlparams": null }, "index": { "index": "jdbc", "type": "jdbc", "bulk_size": 100, "max_bulk_requests": 30, "index_settings": null, "type_mapping": { "location_mapping": { "properties": { "pin": { "type": "geo_point", "lat_lon": true, "store": "yes" } } } }, "versioning": false, "acknowledge": false } }'
[update 1]
here error mapping name change jdbc described javanna:
[2013-05-21 13:20:58,256][warn ][river.jdbc ] [node-0] [jdbc][mysql_jdbc_river] failed create index [jdbc], disabling jdbc river... org.elasticsearch.index.mapper.mapperparsingexception: failed parse mapping definition @ org.elasticsearch.index.mapper.documentmapperparser.extractmapping(documentmapperparser.java:245) @ org.elasticsearch.index.mapper.documentmapperparser.parse(documentmapperparser.java:155) @ org.elasticsearch.index.mapper.mapperservice.parse(mapperservice.java:383) @ org.elasticsearch.index.mapper.mapperservice.parse(mapperservice.java:379) @ org.elasticsearch.cluster.metadata.metadatamappingservice$4.execute(metadatamappingservice.java:310) @ org.elasticsearch.cluster.service.internalclusterservice$2.run(internalclusterservice.java:229) @ org.elasticsearch.common.util.concurrent.prioritizedesthreadpoolexecutor$tiebreakingprioritizedrunnable.run(prioritizedesthreadpoolexecutor.java:95) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:722) caused by: org.elasticsearch.common.jackson.core.jsonparseexception: unexpected character ('=' (code 61)): expecting colon separate field name , value @ [source: {jdbc={properties={pin={lat_lon=true, type=geo_point}}}}; line: 1, column: 7] @ org.elasticsearch.common.jackson.core.jsonparser._constructerror(jsonparser.java:1378) @ org.elasticsearch.common.jackson.core.base.parserminimalbase._reporterror(parserminimalbase.java:599) @ org.elasticsearch.common.jackson.core.base.parserminimalbase._reportunexpectedchar(parserminimalbase.java:520) @ org.elasticsearch.common.jackson.core.json.readerbasedjsonparser.nexttoken(readerbasedjsonparser.java:616) @ org.elasticsearch.common.xcontent.json.jsonxcontentparser.nexttoken(jsonxcontentparser.java:50) @ org.elasticsearch.common.xcontent.support.xcontentmapconverter.readmap(xcontentmapconverter.java:70) @ org.elasticsearch.common.xcontent.support.xcontentmapconverter.readorderedmap(xcontentmapconverter.java:60) @ org.elasticsearch.common.xcontent.support.abstractxcontentparser.mapordered(abstractxcontentparser.java:126) @ org.elasticsearch.index.mapper.documentmapperparser.extractmapping(documentmapperparser.java:243) ... 9 more [2013-05-21 13:20:58,264][info ][cluster.metadata ] [node-0] [_river] update_mapping [mysql_jdbc_river] (dynamic)
you have encode type_mapping json string.
Comments
Post a Comment