stretcher 1.18.1 → 1.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 687ea05d11e4a6f9e96deaf8127a85105b170819
4
- data.tar.gz: 467daf1b89a43624ea66de6e0fcb4f0575f96d4c
3
+ metadata.gz: 35a3ec878b9724b7e1bb69573a589796e8fc2cfa
4
+ data.tar.gz: 156e3e208e02a9d0e5b16412d1608c281f46d38b
5
5
  SHA512:
6
- metadata.gz: aeec19b3c20a5664f6b4be9b42fa01929b40315bb8baf3c75de8d5ca4b6a6655c8f1f1399e37ddb0aaedd73adbba062f4be095af9d10cac1c4782348127f4480
7
- data.tar.gz: cacffffb224c51feaec032292e63df52b7ae3017ff72e50692bd0b03992d2953eaf3bd4e7dd331882434d3e53622bf5654631f36f1e307be7cbdb5aad27124c4
6
+ metadata.gz: e3b1d5e27fb23612c24f9da8cd48e515f70ce112b9e02c50b7ce4e64fb30865f3084701d53a8d96e99b01fd92771e19bb362ed7f53b9607f014cdfd4570dfe0f
7
+ data.tar.gz: 23d81d0f467e589ef5de3f16c94e585d534647b4edf6bd75c6c173fd6f1d6e4dbfbb97afdee90408b1876c02b2e6d3b129eeace66bd2a5985bfe347e60b2eda5
data/README.md CHANGED
@@ -83,6 +83,19 @@ docs = [{"_type" => "tweet", "_id" => 91011, "text" => "Bulked"}]
83
83
  server.index(:foo).bulk_index(docs)
84
84
  ```
85
85
 
86
+ ### Percolate
87
+
88
+ Implements the ElasticSearch [Percolate API](http://www.elasticsearch.org/guide/reference/api/percolate/)
89
+
90
+ ```ruby
91
+ # Register a new percolate query
92
+ server.index(:foo).register_percolator_query(query_name, query_hash)
93
+ # Check a document against an index, returns an array of query matches
94
+ server.index(:foo).type(:foo1).percolate(doc)
95
+ # Delete a percolate query
96
+ server.index(:foo).delete_percolator_query(query_name)
97
+ ```
98
+
86
99
  ### Full Documentation
87
100
 
88
101
  This README documents only part of stretcher's API. The full documentation for stretcher is available in its [full rdocs](http://rdoc.info/github/PoseBiz/stretcher/master/frames).
@@ -115,8 +128,9 @@ Specs may be run with `rake spec`
115
128
 
116
129
  ## Used By
117
130
 
118
- [Pose](http://pose.com)
119
- [Get Satisfaction](https://getsatisfaction.com/corp/)
131
+ * [Pose](http://pose.com)
132
+ * [Get Satisfaction](https://getsatisfaction.com/corp/)
133
+
120
134
  Email or tweet @andrewvc if you'd like to be added to this list!
121
135
 
122
136
  ## Contributors
@@ -164,10 +164,28 @@ module Stretcher
164
164
  request(:post, "_optimize", options)
165
165
  end
166
166
 
167
+ # Registers a percolate query against the index
168
+ # http://www.elasticsearch.org/guide/reference/api/percolate/
169
+ def register_percolator_query(query_name, options = {})
170
+ server.request(:put, percolator_query_path(query_name), nil, options)
171
+ end
172
+
173
+ # Deletes a percolate query from the index
174
+ # http://www.elasticsearch.org/guide/reference/api/percolate/
175
+ def delete_percolator_query(query_name)
176
+ server.request(:delete, percolator_query_path(query_name))
177
+ end
178
+
167
179
  # Full path to this index
168
180
  def path_uri(path="/")
169
181
  p = @server.path_uri("/#{name}")
170
182
  path ? p << "/#{path}" : p
171
183
  end
184
+
185
+ private
186
+
187
+ def percolator_query_path(query_name)
188
+ server.path_uri("/_percolator/#{name}/#{query_name}")
189
+ end
172
190
  end
173
191
  end
@@ -73,6 +73,10 @@ module Stretcher
73
73
  false
74
74
  end
75
75
 
76
+ def percolate(document = {})
77
+ request :get, '_percolate', nil, {:doc => document}
78
+ end
79
+
76
80
  # Retrieve the mapping for this type
77
81
  def get_mapping
78
82
  request :get, "_mapping"
@@ -1,3 +1,3 @@
1
1
  module Stretcher
2
- VERSION = "1.18.1"
2
+ VERSION = "1.19.0"
3
3
  end
@@ -256,4 +256,23 @@ describe Stretcher::Index do
256
256
 
257
257
  end
258
258
 
259
+ context 'percolator' do
260
+ let(:request_url) { "http://localhost:9200/_percolator/foo/bar" }
261
+
262
+ describe '#register_percolator_query' do
263
+ it "registers the percolator query with a put request" do
264
+ expect(index.register_percolator_query('bar', {:query => {:term => {:baz => 'qux'}}}).ok).to be_true
265
+ end
266
+ end
267
+
268
+ describe '#delete_percolator_query' do
269
+ before do
270
+ index.register_percolator_query('bar', {:query => {:term => {:baz => 'qux'}}}).ok
271
+ end
272
+
273
+ it "deletes the percolator query with a delete request" do
274
+ expect(index.delete_percolator_query('bar').ok).to be_true
275
+ end
276
+ end
277
+ end
259
278
  end
@@ -179,4 +179,14 @@ describe Stretcher::IndexType do
179
179
  type.exists?(987).should be_false
180
180
  end
181
181
  end
182
+
183
+ describe 'percolate' do
184
+ before do
185
+ index.register_percolator_query('bar', {:query => {:term => {:baz => 'qux'}}}).ok
186
+ end
187
+
188
+ it 'returns matching percolated queries based on the document' do
189
+ type.percolate({:baz => 'qux'}).matches.should == ['bar']
190
+ end
191
+ end
182
192
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stretcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.18.1
4
+ version: 1.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Cholakian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-20 00:00:00.000000000 Z
11
+ date: 2013-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday