The site is photography game website and hosts millions of the images from photographers all over the world. Every image is processed by Google and Amazon image recognition api to extract the relevant keywords for the image. We designed search which utilizes these keywords to match photos user is searching for. Considering the number photos and complex nature of search we decided to use Elastisearch to implement smart, fast and scalable search.
We designed optimized schema for index with auto complete suggestions, image keywords, synonyms, member information etc. Elastisearch was hosted AWS manged Elastic Cloud service. We optimized the indexing performance by implementing bulk indexing and fine tuning elasticsearch configurations.
Major features implemented are full text search, global suggestions, context based suggestions, synonyms, bulk and real time indexing.