rubberband 0.0.12 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CONTRIBUTORS +1 -0
- data/Gemfile.lock +2 -2
- data/lib/elasticsearch/client/index.rb +7 -2
- data/lib/elasticsearch/transport/base_protocol.rb +11 -0
- data/lib/elasticsearch/version.rb +1 -1
- data/rubberband.gemspec +4 -4
- data/spec/bulk_spec.rb +9 -2
- data/spec/index_spec.rb +11 -0
- metadata +21 -22
data/CONTRIBUTORS
CHANGED
data/Gemfile.lock
CHANGED
@@ -15,7 +15,7 @@ module ElasticSearch
|
|
15
15
|
id = options.delete(:id)
|
16
16
|
if @batch
|
17
17
|
#TODO add routing, parent
|
18
|
-
@batch << { :index => { :_index => index, :_type => type, :_id => id }}
|
18
|
+
@batch << { :index => { :_index => index, :_type => type, :_id => id }.merge(options)}
|
19
19
|
@batch << document
|
20
20
|
else
|
21
21
|
result = execute(:index, index, type, id, document, options)
|
@@ -51,6 +51,11 @@ module ElasticSearch
|
|
51
51
|
result["ok"]
|
52
52
|
end
|
53
53
|
end
|
54
|
+
|
55
|
+
def delete_by_query(query, options = {})
|
56
|
+
index, type, options = extract_required_scope(options)
|
57
|
+
execute(:delete_by_query, index, type, query, options)
|
58
|
+
end
|
54
59
|
|
55
60
|
#df The default field to use when no field prefix is defined within the query.
|
56
61
|
#analyzer The analyzer name to be used when analyzing the query string.
|
@@ -58,7 +63,7 @@ module ElasticSearch
|
|
58
63
|
#explain For each hit, contain an explanation of how to scoring of the hits was computed.
|
59
64
|
#fields The selective fields of the document to return for each hit (fields must be stored), comma delimited. Defaults to the internal _source field.
|
60
65
|
#field Same as fields above, but each parameter contains a single field name to load. There can be several field parameters.
|
61
|
-
#sort Sorting to perform. Can either be in the form of fieldName, or fieldName:
|
66
|
+
#sort Sorting to perform. Can either be in the form of fieldName, or fieldName:desc (for reverse sorting). The fieldName can either be an actual field within the document, or the special score name to indicate sorting based on scores. There can be several sort parameters (order is important).
|
62
67
|
#from The starting from index of the hits to return. Defaults to 0.
|
63
68
|
#size The number of hits to return. Defaults to 10.
|
64
69
|
#search_type The type of the search operation to perform. Can be dfs_query_then_fetch, dfs_query_and_fetch, query_then_fetch, query_and_fetch. Defaults to query_then_fetch.
|
@@ -28,6 +28,17 @@ module ElasticSearch
|
|
28
28
|
handle_error(response) unless response.status == 200 # ElasticSearch always returns 200 on delete, even if the object doesn't exist
|
29
29
|
encoder.decode(response.body)
|
30
30
|
end
|
31
|
+
|
32
|
+
def delete_by_query(index, type, query, options={})
|
33
|
+
# pass the query through the parameters in all the cases, since
|
34
|
+
# DELETE with a body are ambiguously supported
|
35
|
+
if query.is_a?(Hash)
|
36
|
+
params = options.merge(:source => encoder.encode(query))
|
37
|
+
else
|
38
|
+
params = options.merge(:q => query)
|
39
|
+
end
|
40
|
+
request(:delete, {:index => index, :type => type, :op => "_query"}, params)
|
41
|
+
end
|
31
42
|
|
32
43
|
def search(index, type, query, options={})
|
33
44
|
if query.is_a?(Hash)
|
data/rubberband.gemspec
CHANGED
@@ -28,10 +28,10 @@ Gem::Specification.new do |s|
|
|
28
28
|
|
29
29
|
s.add_runtime_dependency("patron", [">= 0"])
|
30
30
|
s.add_runtime_dependency("yajl-ruby", [">= 0"])
|
31
|
-
s.add_development_dependency("rspec", ["~> 2"])
|
32
|
-
s.add_development_dependency("yard", ["~> 0.6"])
|
33
|
-
s.add_development_dependency("bundler", ["~> 1"])
|
31
|
+
s.add_development_dependency("rspec", ["~> 2.0"])
|
32
|
+
s.add_development_dependency("yard", ["~> 0.6.0"])
|
33
|
+
s.add_development_dependency("bundler", ["~> 1.0.0"])
|
34
34
|
s.add_development_dependency("simplecov", [">= 0.3.8"])
|
35
|
-
s.add_development_dependency("mocha", ["~> 0.9"])
|
35
|
+
s.add_development_dependency("mocha", ["~> 0.9.0"])
|
36
36
|
|
37
37
|
end
|
data/spec/bulk_spec.rb
CHANGED
@@ -28,6 +28,13 @@ describe "bulk ops" do
|
|
28
28
|
@client.get("4").socks.should == "argyle"
|
29
29
|
end
|
30
30
|
|
31
|
-
it "should take options"
|
32
|
-
|
31
|
+
it "should take options" do
|
32
|
+
@client.bulk do |c|
|
33
|
+
c.index({:foo => 'bar'}, :id => '1', :_routing => '1', :_parent => '1')
|
34
|
+
#TODO better way to test this?
|
35
|
+
meta = c.instance_variable_get('@batch').detect { |b| b.has_key?(:index) }
|
36
|
+
meta[:index].should include(:_routing => '1')
|
37
|
+
meta[:index].should include(:_parent => '1')
|
38
|
+
end
|
39
|
+
end
|
33
40
|
end
|
data/spec/index_spec.rb
CHANGED
@@ -40,4 +40,15 @@ describe "index ops" do
|
|
40
40
|
results = @client.search({:query => { :field => { :socks => 'stripey' }}}, :ids_only => true)
|
41
41
|
results.should include("5")
|
42
42
|
end
|
43
|
+
|
44
|
+
it 'should delete by query' do
|
45
|
+
@client.index({:deleted => "bar"}, :id => "d1")
|
46
|
+
@client.index({:deleted => "bar"}, :id => "d2")
|
47
|
+
@client.refresh
|
48
|
+
|
49
|
+
@client.count(:term => { :deleted => 'bar'}).should == 2
|
50
|
+
@client.delete_by_query(:term => { :deleted => 'bar' })
|
51
|
+
@client.refresh
|
52
|
+
@client.count(:term => { :deleted => 'bar'}).should == 0
|
53
|
+
end
|
43
54
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubberband
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-06-14 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: patron
|
16
|
-
requirement: &
|
16
|
+
requirement: &14303940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14303940
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: yajl-ruby
|
27
|
-
requirement: &
|
27
|
+
requirement: &14303100 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,43 +32,43 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14303100
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &14302340 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '2'
|
43
|
+
version: '2.0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14302340
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yard
|
49
|
-
requirement: &
|
49
|
+
requirement: &14301800 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.6.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *14301800
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &14301220 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
65
|
+
version: 1.0.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *14301220
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov
|
71
|
-
requirement: &
|
71
|
+
requirement: &14298880 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,18 +76,18 @@ dependencies:
|
|
76
76
|
version: 0.3.8
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *14298880
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: mocha
|
82
|
-
requirement: &
|
82
|
+
requirement: &14298320 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
87
|
+
version: 0.9.0
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *14298320
|
91
91
|
description: An ElasticSearch client with ThriftClient-like failover handling.
|
92
92
|
email:
|
93
93
|
- grantr@gmail.com
|
@@ -161,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
161
|
version: '0'
|
162
162
|
requirements: []
|
163
163
|
rubyforge_project: rubberband
|
164
|
-
rubygems_version: 1.
|
164
|
+
rubygems_version: 1.8.5
|
165
165
|
signing_key:
|
166
166
|
specification_version: 3
|
167
167
|
summary: An ElasticSearch client with ThriftClient-like failover handling.
|
@@ -173,4 +173,3 @@ test_files:
|
|
173
173
|
- spec/index_spec.rb
|
174
174
|
- spec/spec_helper.rb
|
175
175
|
- spec/type_spec.rb
|
176
|
-
has_rdoc:
|