Your browser (Internet Explorer 7 or lower) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.

X

V2: Our new Offline Search SDK with Geo-search and other features!

While our latest news focused on the Algolia Search cloud offer (you can still join the beta), we’re pleased to introduce a major new version of Algolia Search offline: V2! It is available today for iOS, Android and OS X. Windows Phone and Windows versions will be released as soon as they are ready. A few months in the making, we used our early customers’ feedback to introduce new features while simplifying integration.

Algolia became the easiest way to search by geolocation!

The ease of integration is a constant concern for us and that’s why we carefully consider every new feature. Two important features made it in this version:
Continue reading…

Why Android APK Format is a Mistake

When I started to develop for Android it appeared to me that an APK file was just an archive, a simple approach that you can find in many systems today. Files are extracted from the archive at installation and you can access them via the file-system.

This seemed even more reasonable since Android uses Linux which is very good in respect to POSIX standards.

But I was completely wrong! An APK is not a mere archive: the application starts from and uses the APK at runtime! This is a horrible decision that will probably hurt Android for a long time…

[Edit 28-Jan-2013] The goal of this post was to express my point of view about the bad properties of using directly the APK file at runtime versus relying on the file system. I used memory-mapped file to illustrate this but the post is incorrect on that topic. There is in fact a way to memory-map a file directly from the APK: you can use an extension for which files are stored uncompressed inside the APK (mp3, jpg, …) and use the AssetManager.openFD() or Resources.openRawResourceFD() to have offset/length inside the APK file.

All my thanks to Jay Freeman for his excellent feedback. His comments helped me to understand my mistake and to improve our Android integration!
[/Edit]
Continue reading…

Android NDK: How to Reduce Binaries Size

When we started Algolia Development for Android, binary size optimization was not one of our main concerns. In fact we even started to develop in JAVA before switching to C/C++ for reasons of performance.

We were reminded of the importance of binary size by Cyril Mottier who informed us that it would be difficult to integrate our lib in AVelov Android Application because its size. AVelov is 638KB and Algolia was 850KB, which would mean that AVelov would more than double in size with Algolia Search embedded.

To address this problem we managed to reduce Algolia binary size from 850KB to 307KB. In this post we share how we did it.
Continue reading…

Algolia Search is Out!

After 4 betas and many priceless feedbacks, we are really excited to announce the release of Algolia Search! We launched it monday during the 60th edition of Mobile Monday Paris! If you don’t know what Algolia Search can do for your app, take a look at its amazing features or just watch the video!

This release also means that you can now integrate it directly into your apps and publish them! We wanted to have a simple and clear pricing and you can have all the benefits of Algolia Search in one Android or iOS App for only $590! Think about it, that’s less than a the day-rate of a mobile developer in many countries. Compare it to the many days you would need to integrate SQL Lite FTS for poor features.

Try Algolia Search for free for 30-days!

We are also very excited to introduce our new website alongside this launch. You’ll be able to access up-to-date documentation easily, to try and download Algolia Search in a few clicks and of course to order the product! Check it out and let us know what you think!

Thanks again to our beloved beta testers. Stay tuned for more news!

Painless integration, crystal clear documentation, please welcome Algolia Search beta 4!

Last month has been truly electrifying! We joined our friends at Yakaz in their office space, we participated to many events… and most exciting of all, we spent days and nights reworking the product! Today we are really proud to present you the result of this time well spent!

I know I told some of you beta3 would be the last, but we could not ignore your many excellent feedbacks. So here comes Algolia Search beta4, a true revolution (I hope this is not trademarked!) in mobile search!

Here come the major improvements: Continue reading…

Algolia Search beta is out!

After a few months in the making, our first mobile library is finally ready to hit the shelves! Well, nearly! Before releasing it, we want all the feedback you can give us to ensure it’s bug-free, easy to use and responds to your needs.

If you subscribed to the beta, you should already have received your access info. If not, you can request it directly on www.algolia.com.

You’ll be able to download both the iOS and the Android versions, along with all necessary documentation. Feel free to ask for any clarification or additional info. We’ll do a few technical posts which explore the product internals in the coming months.

We’re now eager to read your feedback! You just have one address to remember to report bugs, request features, or anything beta related: beta@algolia.com

Enjoy!

 

C/C++ is still the only way to have high performance on Mobiles

[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.
Continue reading…