Commit 21e189e5dc14a882445a53029a63e2f5d22e0f03

Authored by Andrew Kane
1 parent eaa52ea7

Updated readme

Showing 1 changed file with 25 additions and 17 deletions   Show diff stats
@@ -14,7 +14,21 @@ Runs on Elasticsearch @@ -14,7 +14,21 @@ Runs on Elasticsearch
14 14
15 :tangerine: Battle-tested at [Instacart](https://www.instacart.com) 15 :tangerine: Battle-tested at [Instacart](https://www.instacart.com)
16 16
17 -## Usage 17 +## Get Started
  18 +
  19 +Install Elasticsearch.
  20 +
  21 +```sh
  22 +brew install elasticsearch
  23 +```
  24 +
  25 +Add this line to your application’s Gemfile:
  26 +
  27 +```ruby
  28 +gem "searchkick"
  29 +```
  30 +
  31 +Add searchkick to models you want to search.
18 32
19 ```ruby 33 ```ruby
20 class Product < ActiveRecord::Base 34 class Product < ActiveRecord::Base
@@ -22,19 +36,27 @@ class Product &lt; ActiveRecord::Base @@ -22,19 +36,27 @@ class Product &lt; ActiveRecord::Base
22 end 36 end
23 ``` 37 ```
24 38
  39 +Add data to the search index.
  40 +
  41 +```ruby
  42 +Product.reindex
  43 +```
  44 +
25 And to query, use: 45 And to query, use:
26 46
27 ```ruby 47 ```ruby
28 Product.search "2% Milk" 48 Product.search "2% Milk"
29 ``` 49 ```
30 50
31 -or only search specific fields: 51 +### Query Like SQL
  52 +
  53 +Search specific fields
32 54
33 ```ruby 55 ```ruby
34 Product.search "Butter", fields: [:name, :brand] 56 Product.search "Butter", fields: [:name, :brand]
35 ``` 57 ```
36 58
37 -### Query Like SQL 59 +Filter queries
38 60
39 ```ruby 61 ```ruby
40 Product.search "2% Milk", where: {in_stock: true}, limit: 10, offset: 50 62 Product.search "2% Milk", where: {in_stock: true}, limit: 10, offset: 50
@@ -199,20 +221,6 @@ Item.search &quot;fresh honey&quot;, partial: true # matches organic honey @@ -199,20 +221,6 @@ Item.search &quot;fresh honey&quot;, partial: true # matches organic honey
199 221
200 Due to the distributed nature of Elasticsearch, you can get incorrect results when the number of documents in the index is low. You can [read more about it here](http://www.elasticsearch.org/blog/understanding-query-then-fetch-vs-dfs-query-then-fetch/). To fix this, set the search type to `dfs_query_and_fetch`. Alternatively, you can just use one shard with `settings: {number_of_shards: 1}`. 222 Due to the distributed nature of Elasticsearch, you can get incorrect results when the number of documents in the index is low. You can [read more about it here](http://www.elasticsearch.org/blog/understanding-query-then-fetch-vs-dfs-query-then-fetch/). To fix this, set the search type to `dfs_query_and_fetch`. Alternatively, you can just use one shard with `settings: {number_of_shards: 1}`.
201 223
202 -## Installation  
203 -  
204 -Add this line to your application's Gemfile:  
205 -  
206 -```ruby  
207 -gem "searchkick"  
208 -```  
209 -  
210 -And then execute:  
211 -  
212 -```sh  
213 -bundle  
214 -```  
215 -  
216 ## TODO 224 ## TODO
217 225
218 - Autocomplete 226 - Autocomplete