-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
I had this as my configuration:
var connSettings = new ConnectionSettings(pool, sourceSerializer: (builtin, settings) => new JsonNetSerializer( builtin, settings, () => new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Ignore } )) ...
Using the JsonNetSerializer DOES NOT serialize latitude and longitude properties of GeoPoint as "lat" and "lng", so every IndexDocument request fails.
`Unsuccessful low level call on PUT: /test_sites/site/123?pretty=true&error_trace=true
Audit trail of this API call:
- [1] BadResponse: Node: http://localhost:9200/ Took: 00:00:00.0919641
OriginalException: Elasticsearch.Net.ElasticsearchClientException: The remote server returned an error: (400) Bad Request.. Call: Status code 400 from: PUT /test_sites/site/123?pretty=true&error_trace=true. ServerError: Type: mapper_parsing_exception Reason: "failed to parse field [location] of type [geo_point]" CausedBy: "Type: parse_exception Reason: "field must be either [lat], [lon] or [geohash]"" ---> System.Net.WebException: The remote server returned an error: (400) Bad Request.
at System.Net.HttpWebRequest.GetResponse()
at Elasticsearch.Net.HttpWebRequestConnection.Request[TResponse](RequestData requestData)
--- End of inner exception stack trace ---
Request:
{
"id": 123,
"name": "Daves Dummy Site",
"masterKey": "Master123abc",
"postalZipCode": "PE13 4EB",
"location": {
"latitude": 52.60862,
"longitude": 0.05959
},
"organisationId": 10001,
"organisationName": "Organisation Dummy",
"region": "East",
"country": "England",
"isActive": true
}
Response:
{
"error" : {
"root_cause" : [
{
"type" : "parse_exception",
"reason" : "field must be either [lat], [lon] or [geohash]",
"stack_trace" : "ElasticsearchParseException[field must be either [lat], [lon] or [geohash]]\r\n\tat org.elasticsearch.common.geo.GeoUtils.parseGeoPoint(GeoUtils.java:459)\r\n\tat org.elasticsearch.common.geo.GeoUtils.parseGeoPoint(GeoUtils.java:365)\r\n\tat org.elasticsearch.index.mapper.GeoPointFieldMapper.parseGeoPointIgnoringMalformed(GeoPointFieldMapper.java:358)\r\n\tat org.elasticsearch.index.mapper.GeoPointFieldMapper.parse(GeoPointFieldMapper.java:343)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObjectOrField(DocumentParser.java:488)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObject(DocumentParser.java:505)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.innerParseObject(DocumentParser.java:395)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObjectOrNested(DocumentParser.java:384)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.internalParseDocument(DocumentParser.java:96)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseDocument(DocumentParser.java:69)\r\n\tat org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:281)\r\n\tat org.elasticsearch.index.shard.IndexShard.prepareIndex(IndexShard.java:799)\r\n\tat org.elasticsearch.index.shard.IndexShard.applyIndexOperation(IndexShard.java:775)\r\n\tat org.elasticsearch.index.shard.IndexShard.applyIndexOperationOnPrimary(IndexShard.java:744)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.lambda$executeIndexRequestOnPrimary$3(TransportShardBulkAction.java:458)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeOnPrimaryWhileHandlingMappingUpdates(TransportShardBulkAction.java:481)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeIndexRequestOnPrimary(TransportShardBulkAction.java:456)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeBulkItemRequest(TransportShardBulkAction.java:220)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.performOnPrimary(TransportShardBulkAction.java:164)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.performOnPrimary(TransportShardBulkAction.java:156)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:143)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:82)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryShardReference.perform(TransportReplicationAction.java:1059)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryShardReference.perform(TransportReplicationAction.java:1037)\r\n\tat org.elasticsearch.action.support.replication.ReplicationOperation.execute(ReplicationOperation.java:104)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.runWithPrimaryShardReference(TransportReplicationAction.java:433)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.lambda$doRun$0(TransportReplicationAction.java:374)\r\n\tat org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:61)\r\n\tat org.elasticsearch.index.shard.IndexShard.lambda$wrapPrimaryOperationPermitListener$14(IndexShard.java:2586)\r\n\tat org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:61)\r\n\tat org.elasticsearch.index.shard.IndexShardOperationPermits.acquire(IndexShardOperationPermits.java:273)\r\n\tat org.elasticsearch.index.shard.IndexShardOperationPermits.acquire(IndexShardOperationPermits.java:240)\r\n\tat org.elasticsearch.index.shard.IndexShard.acquirePrimaryOperationPermit(IndexShard.java:2561)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction.acquirePrimaryOperationPermit(TransportReplicationAction.java:996)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.doRun(TransportReplicationAction.java:370)\r\n\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:325)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:312)\r\n\tat org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:66)\r\n\tat org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:692)\r\n\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:751)\r\n\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n\tat java.lang.Thread.run(Thread.java:748)\r\n"
}
],
"type" : "mapper_parsing_exception",
"reason" : "failed to parse field [location] of type [geo_point]",
"caused_by" : {
"type" : "parse_exception",
"reason" : "field must be either [lat], [lon] or [geohash]",
"stack_trace" : "ElasticsearchParseException[field must be either [lat], [lon] or [geohash]]\r\n\tat org.elasticsearch.common.geo.GeoUtils.parseGeoPoint(GeoUtils.java:459)\r\n\tat org.elasticsearch.common.geo.GeoUtils.parseGeoPoint(GeoUtils.java:365)\r\n\tat org.elasticsearch.index.mapper.GeoPointFieldMapper.parseGeoPointIgnoringMalformed(GeoPointFieldMapper.java:358)\r\n\tat org.elasticsearch.index.mapper.GeoPointFieldMapper.parse(GeoPointFieldMapper.java:343)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObjectOrField(DocumentParser.java:488)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObject(DocumentParser.java:505)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.innerParseObject(DocumentParser.java:395)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObjectOrNested(DocumentParser.java:384)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.internalParseDocument(DocumentParser.java:96)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseDocument(DocumentParser.java:69)\r\n\tat org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:281)\r\n\tat org.elasticsearch.index.shard.IndexShard.prepareIndex(IndexShard.java:799)\r\n\tat org.elasticsearch.index.shard.IndexShard.applyIndexOperation(IndexShard.java:775)\r\n\tat org.elasticsearch.index.shard.IndexShard.applyIndexOperationOnPrimary(IndexShard.java:744)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.lambda$executeIndexRequestOnPrimary$3(TransportShardBulkAction.java:458)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeOnPrimaryWhileHandlingMappingUpdates(TransportShardBulkAction.java:481)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeIndexRequestOnPrimary(TransportShardBulkAction.java:456)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeBulkItemRequest(TransportShardBulkAction.java:220)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.performOnPrimary(TransportShardBulkAction.java:164)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.performOnPrimary(TransportShardBulkAction.java:156)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:143)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:82)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryShardReference.perform(TransportReplicationAction.java:1059)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryShardReference.perform(TransportReplicationAction.java:1037)\r\n\tat org.elasticsearch.action.support.replication.ReplicationOperation.execute(ReplicationOperation.java:104)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.runWithPrimaryShardReference(TransportReplicationAction.java:433)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.lambda$doRun$0(TransportReplicationAction.java:374)\r\n\tat org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:61)\r\n\tat org.elasticsearch.index.shard.IndexShard.lambda$wrapPrimaryOperationPermitListener$14(IndexShard.java:2586)\r\n\tat org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:61)\r\n\tat org.elasticsearch.index.shard.IndexShardOperationPermits.acquire(IndexShardOperationPermits.java:273)\r\n\tat org.elasticsearch.index.shard.IndexShardOperationPermits.acquire(IndexShardOperationPermits.java:240)\r\n\tat org.elasticsearch.index.shard.IndexShard.acquirePrimaryOperationPermit(IndexShard.java:2561)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction.acquirePrimaryOperationPermit(TransportReplicationAction.java:996)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.doRun(TransportReplicationAction.java:370)\r\n\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:325)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:312)\r\n\tat org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:66)\r\n\tat org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:692)\r\n\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:751)\r\n\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n\tat java.lang.Thread.run(Thread.java:748)\r\n"
},
"stack_trace" : "MapperParsingException[failed to parse field [location] of type [geo_point]]; nested: ElasticsearchParseException[field must be either [lat], [lon] or [geohash]];\r\n\tat org.elasticsearch.index.mapper.GeoPointFieldMapper.parse(GeoPointFieldMapper.java:347)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObjectOrField(DocumentParser.java:488)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObject(DocumentParser.java:505)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.innerParseObject(DocumentParser.java:395)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseObjectOrNested(DocumentParser.java:384)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.internalParseDocument(DocumentParser.java:96)\r\n\tat org.elasticsearch.index.mapper.DocumentParser.parseDocument(DocumentParser.java:69)\r\n\tat org.elasticsearch.index.mapper.DocumentMapper.parse(DocumentMapper.java:281)\r\n\tat org.elasticsearch.index.shard.IndexShard.prepareIndex(IndexShard.java:799)\r\n\tat org.elasticsearch.index.shard.IndexShard.applyIndexOperation(IndexShard.java:775)\r\n\tat org.elasticsearch.index.shard.IndexShard.applyIndexOperationOnPrimary(IndexShard.java:744)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.lambda$executeIndexRequestOnPrimary$3(TransportShardBulkAction.java:458)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeOnPrimaryWhileHandlingMappingUpdates(TransportShardBulkAction.java:481)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeIndexRequestOnPrimary(TransportShardBulkAction.java:456)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.executeBulkItemRequest(TransportShardBulkAction.java:220)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.performOnPrimary(TransportShardBulkAction.java:164)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.performOnPrimary(TransportShardBulkAction.java:156)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:143)\r\n\tat org.elasticsearch.action.bulk.TransportShardBulkAction.shardOperationOnPrimary(TransportShardBulkAction.java:82)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryShardReference.perform(TransportReplicationAction.java:1059)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryShardReference.perform(TransportReplicationAction.java:1037)\r\n\tat org.elasticsearch.action.support.replication.ReplicationOperation.execute(ReplicationOperation.java:104)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.runWithPrimaryShardReference(TransportReplicationAction.java:433)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.lambda$doRun$0(TransportReplicationAction.java:374)\r\n\tat org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:61)\r\n\tat org.elasticsearch.index.shard.IndexShard.lambda$wrapPrimaryOperationPermitListener$14(IndexShard.java:2586)\r\n\tat org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:61)\r\n\tat org.elasticsearch.index.shard.IndexShardOperationPermits.acquire(IndexShardOperationPermits.java:273)\r\n\tat org.elasticsearch.index.shard.IndexShardOperationPermits.acquire(IndexShardOperationPermits.java:240)\r\n\tat org.elasticsearch.index.shard.IndexShard.acquirePrimaryOperationPermit(IndexShard.java:2561)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction.acquirePrimaryOperationPermit(TransportReplicationAction.java:996)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.doRun(TransportReplicationAction.java:370)\r\n\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:325)\r\n\tat org.elasticsearch.action.support.replication.TransportReplicationAction$PrimaryOperationTransportHandler.messageReceived(TransportReplicationAction.java:312)\r\n\tat org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:66)\r\n\tat org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:692)\r\n\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:751)\r\n\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n\tat java.lang.Thread.run(Thread.java:748)\r\nCaused by: ElasticsearchParseException[field must be either [lat], [lon] or [geohash]]\r\n\tat org.elasticsearch.common.geo.GeoUtils.parseGeoPoint(GeoUtils.java:459)\r\n\tat org.elasticsearch.common.geo.GeoUtils.parseGeoPoint(GeoUtils.java:365)\r\n\tat org.elasticsearch.index.mapper.GeoPointFieldMapper.parseGeoPointIgnoringMalformed(GeoPointFieldMapper.java:358)\r\n\tat org.elasticsearch.index.mapper.GeoPointFieldMapper.parse(GeoPointFieldMapper.java:343)\r\n\t... 41 more\r\n"
},
"status" : 400
}
`