I have the following configuration:
mapping
put geo_test
{
"mappings":{
"properties":{
"name":{
"type":"text"
},
"location":{
"type":"nested",
"properties":{
"name":{
"type":"text"
},
"coordinates":{
"type":"geo_point"
}
}
}
}
}
}
docs
put geo_test/_doc/1
{
"name":"A",
"location":{
"name":"A",
"coordinates":[106.759,-6.16833]
}
}
put geo_test/_doc/2
{
"name":"B",
"location":{
"name":"B",
"coordinates":[106.774,-6.12143]
}
}
And when i tried to use gaussian decay function to sort the score based on nearest to origin its not resulting as i wanted it to be:
get geo_test/_search
{
"query":{
"function_score": {
"query": {
"match_all": {}
},
"functions": [
{
"gauss": {
"location.coordinates": {
"origin": {
"lat":106.774,
"lon":-6.12143
},
"scale":"5km",
"offset": "1km",
"decay": 0.5
}
},
"weight": 10
}
],
"score_mode": "sum",
"boost_mode": "replace"
}
}
}
In the query above i set the origin exactly as doc 2 geopoints, but the result is giving A as the first index and B as the second index. Why did this happend?