oss_rb
A Ruby Client for OpenSearchServer
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'
And then execute:
$ bundle
Or install it yourself as:
$ gem install oss_rb
Usage
Obtain a client instance
index = Oss::Index.new('my_index', 'http://localhost:8080')
Create an index
index.create 'EMPTY_INDEX'
Create some fields
index.set_field({'name' => 'id', 'indexed' => 'YES'})
index.set_field(
{ 'name' => 'name',
'analyzer' => 'StandardAnalyzer',
'stored' => 'YES',
'indexed' => 'YES'
}
)
Set the default field, and the primary key
index.set_field_default_unique('name', 'id')
Put a document in the index
doc = Oss::Document.new
doc.fields << Oss::Field.new('id', "1")
doc.fields << Oss::Field.new('name', "john smith")
index.documents << doc
index.index!
Ok, time to make a search
result = index.search_field(
{ 'query' => 'john',
'searchFields' => [ {'field' => 'name', 'phrase'=>true, 'boost' => 1.0} ],
'start' => 0,
'rows' => 10,
'returnedFields' => ['id', 'name']
}
)
It is possible to store a search template
index.search_store_template_field('fieldsearch',
{ 'query' => 'john',
'searchFields' => [ {'field' => 'name', 'phrase'=>true, 'boost' => 1.0} ],
'start' => 0,
'rows' => 10,
'returnedFields' => ['id', 'name']
}
)
Use the stored search template to make a search
result = index.search_template_field('fieldsearch', {'query' => 'john2'})
Deleting a search template
index.search_template_delete('fieldsearch')
You may remove documents by value or by query
index.delete_document_by_value('id', 1)
index.delete_document_by_query('name:john')
Or remove field
index.delete_field('name')
And finally here is how to delete the index
index.delete!
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request