[#111,backend/elasticsearch][s]: geo distance filter now working - hurrah!.

This commit is contained in:
Rufus Pollock 2012-06-16 16:31:45 +01:00
parent d17775e39d
commit 8ff885759f
2 changed files with 28 additions and 3 deletions

View File

@ -121,9 +121,9 @@ this.recline.Backend.ElasticSearch = this.recline.Backend.ElasticSearch || {};
out[filter.type] = {}
if (filter.type === 'term') {
out.term[filter.field] = filter.term;
} else if (filter.type === 'geo_point') {
out.geo_point[filter.field] = filter.point;
out.geo_point[filter.distance] = filter.distance;
} else if (filter.type === 'geo_distance') {
out.geo_distance[filter.field] = filter.point;
out.geo_distance.distance = filter.distance;
}
return out;
},

View File

@ -49,6 +49,31 @@ test("queryNormalize", function() {
}
};
deepEqual(out, exp);
var in_ = new recline.Model.Query();
in_.addFilter({
type: 'geo_distance',
field: 'xyz'
});
var out = backend._normalizeQuery(in_);
var exp = {
constant_score: {
query: {
match_all: {}
},
filter: {
and: [
{
geo_distance: {
distance: '10km',
'xyz': { lon: 0, lat: 0 }
}
}
]
}
}
};
deepEqual(out, exp);
});
var mapping_data = {