Justin Santa Barbara’s blog

Databases, Clouds and More

Search-as-a-Service With Solr and PlatformLayer

AWS announced search-as-a-service on Thursday; so I thought it would be interesting to get Solr (a great open-source search server) running as a service with PlatformLayer.

This is what Everything-as-a-Service means! You shouldn’t spend months building each service one at a time; you just re-use common code and define what’s unique.

I hit a few stumbling blocks (which is why it took two evenings); some of them were Solr installation issues, and some of them were problems in PlatformLayer itself. The great thing is that by fixing those problems, every service gets the benefit. For example, there’s now much saner retry logic when a task goes wrong.

I’m putting instructions on the wiki now instead of this blog; so here’s how to try it out: SolrAAS

How does this compare to AWS CloudSearch?

Obviously, this isn’t the same as AWS CloudSearch:

  1. The AWS product is much more polished
  2. I think CloudSearch offers auto-scaling, but that isn’t yet implemented in PlatformLayer
  3. In general, the AWS product is a much more battle-tested product. I’m sure they do something smart if a machine fails, PlatformLayer doesn’t (yet)

But, here’s why I think PlatformLayer wins:

  1. You’re not locked in to Amazon - run it on any cloud, on your own hardware, whatever
  2. If you don’t like the way PlatformLayer does something, it’s open source, so you can change it / get it changed
  3. As PlatformLayer improves, every service gets better
  4. It’s the Solr API, so all the language & library support already exists and is mature
  5. Solr is a well-known Apache project, so its strengths and weaknesses are well known
  6. Because you’re running your own search instance, you can tweak the indexing however you want (custom scorers, stemmers etc)
  7. It takes a few hours to create a complex service (including learning about Solr!), rather than 6-24 months

7 bullets vs 3 bullets. PlatformLayer is more than twice as good!

So what service is next?