Geo distance filter exceptions


(Madhavan Ramachandran) #1

Hi Team,

I am trying to find a solution for the below

  1. Geo boundary based search.. My index have property for lat and lon as
    double.. not as a geopoint.. Here is my mapping for my index..

How do i use the lon and lat from the below mapping for geo distance
filter/geo distance range filter ?

Name Type Format Store?
data string

getpath string

id double

Region string

Submarket string

addr1 string

addr2 string

city string

citymarket string

country string

countryid long

cultureid long

data string

details string

fax string

id string

language string

lat double

lon double

When I search for the documents.. i got the below exception..

Query :
{
"filter": {
"geo_distance" : {
"distance" : "300km",
"location" : {
"lat" : 45,
"lon" : -122
}
}

}
}

Exception:
"error": "SearchPhaseExecutionException[Failed to execute phase [query],
all shards failed; shardFailures
{[o3f66HetT3OSpVw895w0nA][offlocations][4]:
SearchParseException[[offlocations][4]: from[-1],size[-1]: Parse Failure
[Failed to parse source [{\n"filter": {\n "geo_distance" : {\n
"distance" : "300km",\n "location" : {\n "lat" : 45,\n "lon" :
-122\n }\n } \n }\n}]]]; nested:

I tried with removing the location, which i dont have in my mapping..

{"filter": { "geo_distance" : { "distance" : "300km", "lat"
: 45, "lon" : -122 } }}

I got the exception as lon is not a geo_point field..

ElasticsearchIllegalArgumentException[the character '-' is not a valid
geohash character]; }]"

If i remove the "-" infront of lon.. then the exception says :

QueryParsingException[[offlocations] field [lon] is not a geo_point field];

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/85658110-e7ae-42c5-8ca9-13f10c7f3820%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(David Pilato) #2

No you can't out of the box. If you want to use built in geo filters you need geo points.

That said, you can use scripts to do it based on lat,lon fields but it will be slower.

My 2 cents

--
David :wink:
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

Le 29 juil. 2014 à 22:30, Madhavan Ramachandran madhavtr@gmail.com a écrit :

Hi Team,

I am trying to find a solution for the below

Geo boundary based search.. My index have property for lat and lon as double.. not as a geopoint.. Here is my mapping for my index..
How do i use the lon and lat from the below mapping for geo distance filter/geo distance range filter ?

Name Type Format Store?
data string

getpath string

id double

Region string

Submarket string

addr1 string

addr2 string

city string

citymarket string

country string

countryid long

cultureid long

data string

details string

fax string

id string

language string

lat double

lon double

When I search for the documents.. i got the below exception..

Query :
{
"filter": {
"geo_distance" : {
"distance" : "300km",
"location" : {
"lat" : 45,
"lon" : -122
}
}

}
}

Exception:
"error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[o3f66HetT3OSpVw895w0nA][offlocations][4]: SearchParseException[[offlocations][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n"filter": {\n "geo_distance" : {\n "distance" : "300km",\n "location" : {\n "lat" : 45,\n "lon" : -122\n }\n } \n }\n}]]]; nested:
I tried with removing the location, which i dont have in my mapping..
{"filter": { "geo_distance" : { "distance" : "300km", "lat" : 45, "lon" : -122 } }}
I got the exception as lon is not a geo_point field..
ElasticsearchIllegalArgumentException[the character '-' is not a valid geohash character]; }]"
If i remove the "-" infront of lon.. then the exception says :
QueryParsingException[[offlocations] field [lon] is not a geo_point field];

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/85658110-e7ae-42c5-8ca9-13f10c7f3820%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/6A9B82CB-37AC-45A2-842A-703E8965D5B9%40pilato.fr.
For more options, visit https://groups.google.com/d/optout.


(Madhavan Ramachandran) #3

Thanks for your response.

I am using Nest dll (.Net) to index the data in ES (in windows as a
service). How to add the geopoint to my index columns?

Regards
Madhavan.TR

On Tuesday, July 29, 2014 3:35:56 PM UTC-5, David Pilato wrote:

No you can't out of the box. If you want to use built in geo filters you
need geo points.

That said, you can use scripts to do it based on lat,lon fields but it
will be slower.

My 2 cents

--
David :wink:
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

Le 29 juil. 2014 à 22:30, Madhavan Ramachandran <madh...@gmail.com
<javascript:>> a écrit :

Hi Team,

I am trying to find a solution for the below

  1. Geo boundary based search.. My index have property for lat and lon
    as double.. not as a geopoint.. Here is my mapping for my index..

How do i use the lon and lat from the below mapping for geo distance
filter/geo distance range filter ?

Name Type Format Store?
data string

getpath string

id double

Region string

Submarket string

addr1 string

addr2 string

city string

citymarket string

country string

countryid long

cultureid long

data string

details string

fax string

id string

language string

lat double

lon double

When I search for the documents.. i got the below exception..

Query :
{
"filter": {
"geo_distance" : {
"distance" : "300km",
"location" : {
"lat" : 45,
"lon" : -122
}
}

}
}

Exception:
"error": "SearchPhaseExecutionException[Failed to execute phase [query],
all shards failed; shardFailures
{[o3f66HetT3OSpVw895w0nA][offlocations][4]:
SearchParseException[[offlocations][4]: from[-1],size[-1]: Parse Failure
[Failed to parse source [{\n"filter": {\n "geo_distance" : {\n
"distance" : "300km",\n "location" : {\n "lat" : 45,\n "lon" :
-122\n }\n } \n }\n}]]]; nested:

I tried with removing the location, which i dont have in my mapping..

{"filter": { "geo_distance" : { "distance" : "300km", "lat"
: 45, "lon" : -122 } }}

I got the exception as lon is not a geo_point field..

ElasticsearchIllegalArgumentException[the character '-' is not a valid
geohash character]; }]"

If i remove the "-" infront of lon.. then the exception says :

QueryParsingException[[offlocations] field [lon] is not a geo_point field];

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearc...@googlegroups.com <javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/85658110-e7ae-42c5-8ca9-13f10c7f3820%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/85658110-e7ae-42c5-8ca9-13f10c7f3820%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/b0d6e420-701b-4ace-8763-9a4d2c172cdc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(Madhavan Ramachandran) #4

Hi

I have updated the mapping for my index.. added a column with geopoint..

locationgeo_point
when i search without geo filter for data.. i can able to see the location
information.

{
"_index": "offlocations_geo",
"_type": "officelocations",
"_id": "21",
"_score": 1,
"_source": {
"countryid": 232,
"lat": 32.8641213476658,
"lon": -96.8086239695549,
"id": 21,
"cultureid": 1033,
"country": "US",
"id": "21-10",
"title": "8343 Douglas Avenue",
"getpath": "8343 Douglas Avenue",
"topic": "",
"details": "

Dallas, TX 75225
", "addr1": "Suite 100", "addr2": "", "city": "Dallas", "province": "TX", "zip": "75225", "Region": "Americas", "market": "", "phone": "", "fax": "+", "language": "en-us", "location": { "lat": 32.8641213476658, "lon": -96.8086239695549 } } }

When i add the geofilter query .. again getting exception..
{
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "10km",

            "location": {
                    "lat": 41.0453822,
                    "lon": -73.5474359
                }
                
        }
    }
}

}

exception info:

nested: SearchParseException[[offlocations_geo][2]: from[-1],size[-1]:
Parse Failure [No parser for element [filtered]]]; }]",
"status": 400

Regards
Madhavan.TR

On Wednesday, July 30, 2014 8:48:22 AM UTC-5, Madhavan Ramachandran wrote:

Thanks for your response.

I am using Nest dll (.Net) to index the data in ES (in windows as a
service). How to add the geopoint to my index columns?

Regards
Madhavan.TR

On Tuesday, July 29, 2014 3:35:56 PM UTC-5, David Pilato wrote:

No you can't out of the box. If you want to use built in geo filters you
need geo points.

That said, you can use scripts to do it based on lat,lon fields but it
will be slower.

My 2 cents

--
David :wink:
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

Le 29 juil. 2014 à 22:30, Madhavan Ramachandran madh...@gmail.com a
écrit :

Hi Team,

I am trying to find a solution for the below

  1. Geo boundary based search.. My index have property for lat and lon
    as double.. not as a geopoint.. Here is my mapping for my index..

How do i use the lon and lat from the below mapping for geo distance
filter/geo distance range filter ?

Name Type Format Store?
data string

getpath string

id double

Region string

Submarket string

addr1 string

addr2 string

city string

citymarket string

country string

countryid long

cultureid long

data string

details string

fax string

id string

language string

lat double

lon double

When I search for the documents.. i got the below exception..

Query :
{
"filter": {
"geo_distance" : {
"distance" : "300km",
"location" : {
"lat" : 45,
"lon" : -122
}
}

}
}

Exception:
"error": "SearchPhaseExecutionException[Failed to execute phase [query],
all shards failed; shardFailures
{[o3f66HetT3OSpVw895w0nA][offlocations][4]:
SearchParseException[[offlocations][4]: from[-1],size[-1]: Parse Failure
[Failed to parse source [{\n"filter": {\n "geo_distance" : {\n
"distance" : "300km",\n "location" : {\n "lat" : 45,\n "lon" :
-122\n }\n } \n }\n}]]]; nested:

I tried with removing the location, which i dont have in my mapping..

{"filter": { "geo_distance" : { "distance" : "300km", "lat"
: 45, "lon" : -122 } }}

I got the exception as lon is not a geo_point field..

ElasticsearchIllegalArgumentException[the character '-' is not a valid
geohash character]; }]"

If i remove the "-" infront of lon.. then the exception says :

QueryParsingException[[offlocations] field [lon] is not a geo_point
field];

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearc...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/85658110-e7ae-42c5-8ca9-13f10c7f3820%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/85658110-e7ae-42c5-8ca9-13f10c7f3820%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/e33baf32-8841-4350-92f8-8a5306530e3f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(Joffrey Hercule) #5

Hi !
Use "query".

ex :
{
"query" : {
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "50km",
"city.location" : {
"lat" : 43.4,
"lon" : 5.4
}
}
}
}
}
}

Le mardi 29 juillet 2014 22:30:12 UTC+2, Madhavan Ramachandran a écrit :

Hi Team,

I am trying to find a solution for the below

  1. Geo boundary based search.. My index have property for lat and lon
    as double.. not as a geopoint.. Here is my mapping for my index..

How do i use the lon and lat from the below mapping for geo distance
filter/geo distance range filter ?

Name Type Format Store?
data string

getpath string

id double

Region string

Submarket string

addr1 string

addr2 string

city string

citymarket string

country string

countryid long

cultureid long

data string

details string

fax string

id string

language string

lat double

lon double

When I search for the documents.. i got the below exception..

Query :
{
"filter": {
"geo_distance" : {
"distance" : "300km",
"location" : {
"lat" : 45,
"lon" : -122
}
}

}
}

Exception:
"error": "SearchPhaseExecutionException[Failed to execute phase [query],
all shards failed; shardFailures
{[o3f66HetT3OSpVw895w0nA][offlocations][4]:
SearchParseException[[offlocations][4]: from[-1],size[-1]: Parse Failure
[Failed to parse source [{\n"filter": {\n "geo_distance" : {\n
"distance" : "300km",\n "location" : {\n "lat" : 45,\n "lon" :
-122\n }\n } \n }\n}]]]; nested:

I tried with removing the location, which i dont have in my mapping..

{"filter": { "geo_distance" : { "distance" : "300km", "lat"
: 45, "lon" : -122 } }}

I got the exception as lon is not a geo_point field..

ElasticsearchIllegalArgumentException[the character '-' is not a valid
geohash character]; }]"

If i remove the "-" infront of lon.. then the exception says :

QueryParsingException[[offlocations] field [lon] is not a geo_point field];

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/567759b4-21bb-489f-b08f-36ba982a30c8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(Madhavan Ramachandran) #6

Nope.. it did not work..got exception as
QueryParsingException[[offlocations_geo] failed to find geo_point field
[city.location

Regards
Madhavan.TR
On Wednesday, July 30, 2014 10:08:45 AM UTC-5, Joffrey Hercule wrote:

Hi !
Use "query".

ex :
{
"query" : {
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "50km",
"city.location" : {
"lat" : 43.4,
"lon" : 5.4
}
}
}
}
}
}

Le mardi 29 juillet 2014 22:30:12 UTC+2, Madhavan Ramachandran a écrit :

Hi Team,

I am trying to find a solution for the below

  1. Geo boundary based search.. My index have property for lat and lon
    as double.. not as a geopoint.. Here is my mapping for my index..

How do i use the lon and lat from the below mapping for geo distance
filter/geo distance range filter ?

Name Type Format Store?
data string

getpath string

id double

Region string

Submarket string

addr1 string

addr2 string

city string

citymarket string

country string

countryid long

cultureid long

data string

details string

fax string

id string

language string

lat double

lon double

When I search for the documents.. i got the below exception..

Query :
{
"filter": {
"geo_distance" : {
"distance" : "300km",
"location" : {
"lat" : 45,
"lon" : -122
}
}

}
}

Exception:
"error": "SearchPhaseExecutionException[Failed to execute phase [query],
all shards failed; shardFailures
{[o3f66HetT3OSpVw895w0nA][offlocations][4]:
SearchParseException[[offlocations][4]: from[-1],size[-1]: Parse Failure
[Failed to parse source [{\n"filter": {\n "geo_distance" : {\n
"distance" : "300km",\n "location" : {\n "lat" : 45,\n "lon" :
-122\n }\n } \n }\n}]]]; nested:

I tried with removing the location, which i dont have in my mapping..

{"filter": { "geo_distance" : { "distance" : "300km", "lat"
: 45, "lon" : -122 } }}

I got the exception as lon is not a geo_point field..

ElasticsearchIllegalArgumentException[the character '-' is not a valid
geohash character]; }]"

If i remove the "-" infront of lon.. then the exception says :

QueryParsingException[[offlocations] field [lon] is not a geo_point
field];

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/11cd8b18-7057-4190-a3d0-463bd59b7f5a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(Joffrey Hercule) #7

city.location was an example :wink:
You should use yours.

Le mercredi 30 juillet 2014 18:13:53 UTC+2, Madhavan Ramachandran a écrit :

Nope.. it did not work..got exception as
QueryParsingException[[offlocations_geo] failed to find geo_point field
[city.location

Regards
Madhavan.TR
On Wednesday, July 30, 2014 10:08:45 AM UTC-5, Joffrey Hercule wrote:

Hi !
Use "query".

ex :
{
"query" : {
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "50km",
"city.location" : {
"lat" : 43.4,
"lon" : 5.4
}
}
}
}
}
}

Le mardi 29 juillet 2014 22:30:12 UTC+2, Madhavan Ramachandran a écrit :

Hi Team,

I am trying to find a solution for the below

  1. Geo boundary based search.. My index have property for lat and
    lon as double.. not as a geopoint.. Here is my mapping for my index..

How do i use the lon and lat from the below mapping for geo distance
filter/geo distance range filter ?

Name Type Format Store?
data string

getpath string

id double

Region string

Submarket string

addr1 string

addr2 string

city string

citymarket string

country string

countryid long

cultureid long

data string

details string

fax string

id string

language string

lat double

lon double

When I search for the documents.. i got the below exception..

Query :
{
"filter": {
"geo_distance" : {
"distance" : "300km",
"location" : {
"lat" : 45,
"lon" : -122
}
}

}
}

Exception:
"error": "SearchPhaseExecutionException[Failed to execute phase [query],
all shards failed; shardFailures
{[o3f66HetT3OSpVw895w0nA][offlocations][4]:
SearchParseException[[offlocations][4]: from[-1],size[-1]: Parse Failure
[Failed to parse source [{\n"filter": {\n "geo_distance" : {\n
"distance" : "300km",\n "location" : {\n "lat" : 45,\n "lon" :
-122\n }\n } \n }\n}]]]; nested:

I tried with removing the location, which i dont have in my mapping..

{"filter": { "geo_distance" : { "distance" : "300km", "lat"
: 45, "lon" : -122 } }}

I got the exception as lon is not a geo_point field..

ElasticsearchIllegalArgumentException[the character '-' is not a valid
geohash character]; }]"

If i remove the "-" infront of lon.. then the exception says :

QueryParsingException[[offlocations] field [lon] is not a geo_point
field];

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/a95b2a60-6f4d-4727-9b38-67cfd4329465%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(system) #8