Skip to content

Commit 0577d55

Browse files
committed
Added the information about elasticsearch-persistence to the main README
1 parent 49eb1cb commit 0577d55

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

README.md

+32-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Elasticsearch
22

3-
This repository contains ActiveModel, ActiveRecord and Ruby on Rails integrations for
4-
[Elasticsearch](http://elasticsearch.org):
3+
This repository contains various Ruby and Rails integrations for [Elasticsearch](http://elasticsearch.org):
54

65
* ActiveModel integration with adapters for ActiveRecord and Mongoid
6+
* _Repository Pattern_ based persistence layer for Ruby objects
77
* Enumerable-based wrapper for search results
88
* ActiveRecord::Relation-based wrapper for returning search results as records
99
* Convenience model methods such as `search`, `mapping`, `import`, etc
@@ -41,13 +41,16 @@ or install it from a source code checkout:
4141

4242
## Usage
4343

44-
This project is split into two separate gems:
44+
This project is split into three separate gems:
4545

4646
* [**`elasticsearch-model`**](https://github.com/elasticsearch/elasticsearch-rails/tree/master/elasticsearch-model),
47-
which contains model-related features such as setting up indices, `search` method, pagination, etc
47+
which contains search integration for Ruby/Rails models such as ActiveRecord::Base and Mongoid,
48+
49+
* [**`elasticsearch-persistence`**](https://github.com/elasticsearch/elasticsearch-rails/tree/master/elasticsearch-persistence),
50+
which provides standalone persistence layer for Ruby/Rails objects and models
4851

4952
* [**`elasticsearch-rails`**](https://github.com/elasticsearch/elasticsearch-rails/tree/master/elasticsearch-rails),
50-
which contains features for Ruby on Rails applications
53+
which contains various features for Ruby on Rails applications
5154

5255
Example of a basic integration into an ActiveRecord-based model:
5356

@@ -64,20 +67,43 @@ Article.import
6467
@articles = Article.search('foobar').records
6568
```
6669

70+
Example of using Elasticsearch as a repository for a Ruby model:
71+
72+
```ruby
73+
require 'virtus'
74+
class Article
75+
include Virtus.model
76+
attribute :title, String
77+
end
78+
79+
require 'elasticsearch/persistence'
80+
repository = Elasticsearch::Persistence::Repository.new
81+
82+
repository.save Article.new(title: 'Test')
83+
# POST http://localhost:9200/repository/article [status:201, request:0.760s, query:n/a]
84+
# => {"_index"=>"repository", "_type"=>"article", "_id"=>"Ak75E0U9Q96T5Y999_39NA", ...}
85+
```
86+
6787
You can generate a fully working Ruby on Rails application with a single command:
6888

6989
```bash
7090
rails new searchapp --skip --skip-bundle --template https://raw.github.com/elasticsearch/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/01-basic.rb
7191
```
7292

73-
Please refer to each library documentation for detailed information and examples.
93+
**Please refer to each library documentation for detailed information and examples.**
7494

7595
### Model
7696

7797
* [[README]](https://github.com/elasticsearch/elasticsearch-rails/blob/master/elasticsearch-model/README.md)
7898
* [[Documentation]](http://rubydoc.info/gems/elasticsearch-model/)
7999
* [[Test Suite]](https://github.com/elasticsearch/elasticsearch-rails/blob/master/elasticsearch-model/test)
80100

101+
### Persistence
102+
103+
* [[README]](https://github.com/elasticsearch/elasticsearch-rails/blob/master/elasticsearch-persistence/README.md)
104+
* [[Documentation]](http://rubydoc.info/gems/elasticsearch-persistence/)
105+
* [[Test Suite]](https://github.com/elasticsearch/elasticsearch-rails/blob/master/elasticsearch-persistence/test)
106+
81107
### Rails
82108

83109
* [[README]](https://github.com/elasticsearch/elasticsearch-rails/blob/master/elasticsearch-rails/README.md)

0 commit comments

Comments
 (0)