A presentation for the January 2014 Elasticsearch MeetUp in San Francisco. It shows how Findery uses Elasticsearch to solve their unique geo challenges and how Elasticsearch helps small teams implement robust and successful search features.
chef driven setup, multiple data nodes behind a load balancer • new nodes discoverable via well-maintained plugins • additional internal monitoring using Sematext
T E W I T H A G E O C O M P O N E N T • “find venues near me” • about 60M records • ngram autocomplete for names of venues • combined with sorting by latitude and longitude • good performance when queries are pre warmed (in 10’s of ms) • even better performance if you can set a max on distance
potentially very few notes in a big area • some notes are (very subjectively) better than others • some notes are (very objectively) better than others
I N A S M A L L A R E A ” • simple bounding box query • boost notes based on scores • prevent “rich get richer” with score half life • boost newer content where it makes sense
N A B I G A R E A ” • expand bbox until you find something? • order by distance AND score? (kind of expensive) • determine some sort of a base score? • quality vs. performance
A R E ( S U B J E C T I V E LY ) B E T T E R T H A N O T H E R S ” • people tend to like what their friends like (incorporate the friend graph into queries) • people who liked X also liked Y (generate a few Y for every X) • a little bit of editorial content (easiest tech-wise, needs lots of people)