[Edit 15-Nov-2012] I had questions on reddit about the data-structures and algorithms we used. We develop an embedded search engine for mobiles and tests were done on our own data-structure that is far more efficient than SQLite or other platform options for this use-case. [/Edit]
When it comes to programming languages and performance, you can read all and its opposite on the web. It’s definitely a very controversial topic!
For Algolia the story started when researching an instant suggest algorithm and I used Java for two reasons:
- Main reason: our first client was using Java on Google App Engine
- Secondary: at that stage, I was doing a lots of refactoring and Eclipse is very efficient for these tasks
Once our algorithm was designed, I started to optimize performance on a desktop computer (core I7 950). For this, I indexed all titles of the english version of wikipedia (4 millions titles) and I optimized the Java code mainly by reducing the number of allocations. All instant suggest queries were then faster than 10ms.