Hey All,
  I have a question about the internal implementation of geo hashes and 
distance filters.  Here is my current understanding, I'm struggling to 
figure out how to apply these to our queries internally in ES.


Using bool queries are very efficient.  Internally they 
perform bitmap union, intersection, and subtraction for very fast candidate 
aggregation per term. 

Geo distance filters are then run on the results of the candidates from the 
bitmap logic.  Each document must be evaluated individually in memory. 
 Obviously for large documents sets from the bitmap evaluation, this is 
inefficient.  



What happens when someone only gives our application a geo distance query? 
 To make this more efficient, I would like to use geo hashing.  ES seems to 
have geo hashing built in, but it's documented as  filter.  For instance, I 
envision the following workflow internally in ES.


1) User searches for all matches within 2k of their current location
2) Use a geohash to create a hash that will encapsulate all points within 
2k of their current location
3) Use the bool query with this geo hash to narrow the candidate result set
4) Apply the distance filter to these candidates to get more accurate 
results.



However, when reading the documentation on searching geo hashing, it's 
still a filter.  Internally, does it use geohasing and the fast bitmaps 
since it's a string match, then filter, or is it all filters and the hash 
is evaluated in memory for all documents?

http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.4/query-dsl-geohash-cell-filter.html



Thanks,
Todd



-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/5ee6fb94-e0a2-4e39-8537-23c8c8f74fe0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to