OpenSearchServer Active Record integration
Ruby JavaScript CSS
Pull request Compare This branch is 23 commits ahead, 1 commit behind OriPekelman:master.
Latest commit ba6f22a Mar 7, 2014 @emmanuel-keller emmanuel-keller Merge pull request #7 from AlexParamonov/fix/undefined_method_documen…
…ts_for_nil_class

Create index object when needed

README.md

An active_record intergration for OpenSearchServer

This is very very initial, but there is a running dummy application with test cases.

Depends on jaeksoft/oss_rb

Requirement

A running OpenSearchServer instance (>= v1.5) http://www.open-search-server.com

Installation

Add this line to your application's Gemfile:

gem 'oss_rb'
gem 'oss_active_record'

And then execute:

$ bundle

Or install it yourself as:

$ gem install oss_active_record

Configuration

Add config/initializers/oss_active_record.rb with the URL, login and api key of opens-search-server

Rails.configuration.open_search_server_url = 'http://localhost:8080'
Rails.configuration.open_search_server_login = 'my_login'
Rails.configuration.open_search_server_apikey = 'my_api_key'

Usage

class Person < ActiveRecord::Base
  searchable do
    integer  :id
    integer  :age
    text     :name              # fulltext
    string   :name              # order_by
    time     :updated_at
  end
end

Records are autonindexed by default.

You can search by example:

result = Person.search do
    fulltext 'john'
    with :age, 20
    paginate page: 1, per_page: 10
    order_by :score, :desc
    order_by :id, :asc
end
@result.each { |person| puts person }

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request