Hi David,
I think I am still missing something.
When I try to create mapping before I create river for the collection Asset
I get this exception:
org.elasticsearch.indices.IndexMissingException: [asset_index] missing
at
org.elasticsearch.cluster.metadata.MetaData.convertFromWildcards(MetaData.java:602)
at
org.elasticsearch.cluster.metadata.MetaData.concreteIndices(MetaData.java:514)
at
org.elasticsearch.cluster.metadata.MetaData.concreteIndices(MetaData.java:497)
at
org.elasticsearch.action.admin.indices.mapping.put.TransportPutMappingAction.doExecute(TransportPutMappingAction.java:74)
at
org.elasticsearch.action.admin.indices.mapping.put.TransportPutMappingAction.doExecute(TransportPutMappingAction.java:41)
at
org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:61)
at
org.elasticsearch.client.node.NodeIndicesAdminClient.execute(NodeIndicesAdminClient.java:72)
at
org.elasticsearch.client.support.AbstractIndicesAdminClient.putMapping(AbstractIndicesAdminClient.java:290)
at
org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequestBuilder.doExecute(PutMappingRequestBuilder.java:109)
at
org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:62)
at
org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:57)
at com.tycoint.eams.servlet.UploadXml.buildAssetMapping(UploadXml.java:147)
at com.tycoint.eams.servlet.UploadXml.doPost(UploadXml.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
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)
When you say "send mapping before creating river" you mean to execute this
code - is that right?:
PutMappingResponse response = node.client().admin().indices()
.preparePutMapping("asset_index")
.setType("Asset")
.setSource(xbMapping)
.execute().actionGet();
Regards,
Janusz
On Thursday, January 10, 2013 1:53:00 PM UTC+11, JD wrote:
Hi,
I have a quite a few documents like this that are indexed in elasticsearch
db (attached is just one for an example):{
"took": 28, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 694, "max_score": 1, "hits": [ { "_index": "asset_index", "_type": "Asset", "_id": "4", "_score": 1, "_source": { "_id": 4, "className": "com.tycoint.eams.mongodb.AssetDB", "name": "FCC_SRV02", "serialNo": "Service Tag: 5S2HB2S\nExpress ServiceTag: 12581131348",
"description": "Meridian Server Node 2 (Dell PowerEdgeR710)",
"location": { "latitude": 5, "longitude": 5 }, "address": { "countryCode": "AU", "state": "VIC", "city": "Melbourne", "postcode": "", "street": "FCC", "street2": "", "detail": "" }, "properties": { "K1X3X15": "20121109", "K2X1X1": "10.10.10.11", "K1X3X14": "", "K1X3X13": "", "K2X1X2": "", "K1X3X12": "02 8972 5897", "K2X1X3": "FCC", "K2X1X4": "10.0", "K2X1X5": "", "K1X3X16": "1 Year", "K1X3X8": "", "K1X1X1": "FCC", "K1X2X5": "", "K1X2X4": "FCC", "K1X1X2": "PLD-DRG-A-6112", "K1X3X7": "Dell PowerEdge R710", "K1X1X3": "", "K1X3X9": "Current", "K1X2X1": "Server", "K1X3X11": "Zac Cochrane", "K1X3X10": "DELL Aust Pty Ltd", "K1X2X3": "FCC", "K1X2X2": "FCC", "K3X1X4": "", "K3X1X3": "", "K3X1X2": "", "K3X1X1": "", "K1X3X5": "Physical Key:YTF2W-KFJ3P-3W447-8K3J4-42VVQ\nVirtual Key: 39C2W-H7QWQ-DBH43-37MJ8-HPD2G",
"K1X3X6": "", "K1X3X3": "IM0004-D-0003 Hardware ArchitecturalDesign Document \nIM0004-D-0004 Peninsula link Device List",
"K1X3X4": "IM0004-PLG-SP-I-0036 Dell PowerEdgeR710",
"K1X3X1": "20111109", "K1X3X2": "Meridian Cluster Node2" }, "productId": 4, "assetCategoryId": 0 } } ] }As you can see my location field has two sub fields latitude/longitude
(under _source).I would like to retrieve all documents with the distance 500m from
location [1, 1] using Java.I am trying to play with this code:
SearchRequestBuilder srb =
client.prepareSearch("asset_index").setTypes("Asset").setSearchType(SearchType.DEFAULT).setQuery(QueryBuilders.matchAllQuery());srb.setFilter(FilterBuilders.geoDistanceRangeFilter("filter1").lat(1).lon(1).geoDistance(
GeoDistance.PLANE));How can I specify the distance 500 m from lat/long[1/1]?
Any suggestions?
Regards,
Janusz
--