Bonsai

Fast, reliable full-text search, managed for you by experts.

Your customers expect fast, near-magical results from your site search. Help them find what they’re looking for with Bonsai.

We set up and manage the servers for you, so integration is quick and easy, and you can stay focused on building an awesome site.

Install on Heroku

Our clients are pleased, they've noticed a huge increase in performance and resilience.

—James Old, Managing Director

Everything worked perfectly.
Exactly what I wanted. Thanks!

—Jake Boxer, Developer
  • The Open Source Advantage

    Our service is proudly powered by Elasticsearch and Apache Lucene, the open source industry standard for fast full-text search.

    Now your application's search can benefit from years of effort invested by a community of expert developers. Bottom line: you get the best features and functionality available.

  • Results in Real-Time

    Your customers are conditioned to expect fast full-text search, and Bonsai delivers. Studies show that faster websites are more attractive, and every millisecond matters when it comes to your customers' satisfaction.

    Search your site's activity as it happens, with Elasticsearch's cutting-edge real-time updates.

  • Distributed by Default

    Build a high-scale, high-availability search index with confidence. Elasticsearch is built with data distribution in mind, for today's modern cloud hosting environments.

    Partition your index into shards to expand your capacity, and add replicas to support higher availability and search traffic volume.

  • Supported by Specialists

    At One More Cloud, we have been serving production full-text search for thousands of other customers since 2009. Our sister service Websolr is one of the first, and most popular, Heroku addons.

    We're experts in web development, distributed systems and Lucene, and we're here to help.

Indexing

class Article < ActiveRecord::Base
  include Elasticsearch::Model
  include Elasticsearch::Model::Callbacks
end

Article.import

@article = Article.create(
  title: "Hello world...",
  body: "It's just Ruby and ActiveRecord."
)

Searching

@articles = Articles.search('foo').records

Indexing

client = ElasticSearch('http://demo.bonsai.io/')
article = {
  "title": "Hello world",
  "body": "It's just Python and pyelasticsearch!"
}
client.index(article, "testing", "articles", 1)

Searching

client.search({
  "query" => {
    "text" => {
      "_all" => "Hello Python"
    }
  }
})

Create an Index

curl -X POST http://demo.bonsai.io/testing

Add Documents

curl http://demo.bonsai.io/testing/articles -d '{
  title: "Hello world",
  body: "JSON on the command line with curl!"
}'

Search

curl -XGET http://demo.bonsai.io/testing/articles/_search -d '{
  "query": {
    "text": { "_all": "Hello, curl!" }
  }
}'

ElasticSearch has a comprehensive collection of open source clients. Its RESTful HTTP API can be integrated within your platform of choice, specifically including:

.NET, Catalyst, Clojure, CouchDB, Django, Drupal, Erlang, EventMachine, Flume, Grails, Hadoop, Perl, Play!, Rails, Symfony2, Terrastore.