searchkick 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -8
- data/lib/searchkick/search.rb +1 -2
- data/lib/searchkick/version.rb +1 -1
- data/test/searchkick_test.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cffaa2412f04c693b99dbd54f530b22f7ab32c53
|
4
|
+
data.tar.gz: 2dd98e1341946940a3cb0997400fe88d2687f540
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16f646bd8e81672e98dc619d25814f071037b3522d63d235e64ee2aa7af782c483ab08e139411dd0a7501bb1e73163b475b9fffb69b44483525ad01d8f4b6981
|
7
|
+
data.tar.gz: 95b73d727ddbe424a8e9167dd2b62c2fead9fefe326a08a6da3c26cf98a33d8d824cc2c2f68921dca25b1167e26baced0cf80a802b1c976f4049a87e4cef1fec
|
data/README.md
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# Searchkick
|
2
2
|
|
3
|
-
:rocket:
|
3
|
+
:rocket: Intelligent search made easy
|
4
4
|
|
5
|
-
Searchkick
|
5
|
+
Searchkick learns what **your users** are looking for. As more people search, it gets smarter and the results get better. It’s friendly for developers - and magical for your users.
|
6
|
+
|
7
|
+
Searchkick handles:
|
6
8
|
|
7
9
|
- stemming - `tomatoes` matches `tomato`
|
8
10
|
- special characters - `jalapeno` matches `jalapeño`
|
@@ -14,7 +16,6 @@ Plus:
|
|
14
16
|
|
15
17
|
- query like SQL - no need to learn a new query language
|
16
18
|
- reindex without downtime
|
17
|
-
- continually improve results from conversions - **pretty awesome**
|
18
19
|
|
19
20
|
:tangerine: Battle-tested at [Instacart](https://www.instacart.com)
|
20
21
|
|
@@ -140,7 +141,7 @@ You must call `Product.reindex` after changing synonyms.
|
|
140
141
|
|
141
142
|
### Indexing
|
142
143
|
|
143
|
-
|
144
|
+
Control what data is indexed with the `search_data` method.
|
144
145
|
|
145
146
|
```ruby
|
146
147
|
class Product < ActiveRecord::Base
|
@@ -168,9 +169,11 @@ end
|
|
168
169
|
|
169
170
|
### Continually Improve Results
|
170
171
|
|
171
|
-
|
172
|
+
Searchkick uses conversion data to learn what users are looking for.
|
173
|
+
|
174
|
+
First, choose a conversion metric for your application. At Instacart, an item added to the cart is a conversion.
|
172
175
|
|
173
|
-
|
176
|
+
Next, track the conversions. The database works well for low volume, but feel free to use Redis or another datastore.
|
174
177
|
|
175
178
|
```ruby
|
176
179
|
class Search < ActiveRecord::Base
|
@@ -194,10 +197,10 @@ class Product < ActiveRecord::Base
|
|
194
197
|
end
|
195
198
|
```
|
196
199
|
|
197
|
-
Reindex and
|
200
|
+
Reindex and set up a cron job to add new conversions daily.
|
198
201
|
|
199
202
|
```ruby
|
200
|
-
|
203
|
+
heroku run rake searchkick:reindex CLASS=Product
|
201
204
|
```
|
202
205
|
|
203
206
|
### Facets
|
data/lib/searchkick/search.rb
CHANGED
@@ -32,8 +32,7 @@ module Searchkick
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
35
|
-
|
36
|
-
if options[:conversions]
|
35
|
+
unless options[:conversions] == false
|
37
36
|
should do
|
38
37
|
nested path: "conversions", score_mode: "total" do
|
39
38
|
query do
|
data/lib/searchkick/version.rb
CHANGED
data/test/searchkick_test.rb
CHANGED
@@ -280,7 +280,7 @@ class TestSearchkick < Minitest::Unit::TestCase
|
|
280
280
|
end
|
281
281
|
|
282
282
|
def assert_search(term, expected, options = {})
|
283
|
-
assert_equal expected, Product.search(term, options.merge(fields: [:name]
|
283
|
+
assert_equal expected, Product.search(term, options.merge(fields: [:name])).map(&:name)
|
284
284
|
end
|
285
285
|
|
286
286
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: searchkick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tire
|