jruby-elasticsearch 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,9 +5,8 @@ class ElasticSearch::BulkRequest < ElasticSearch::Request
5
5
  # Create a new index request.
6
6
  def initialize(client)
7
7
  @client = client
8
-
9
- @prep = @client.prepareBulk(index, type, id)
10
- super
8
+ @prep = @client.prepareBulk()
9
+ super()
11
10
  end
12
11
 
13
12
  # Execute this index request.
@@ -15,7 +14,7 @@ class ElasticSearch::BulkRequest < ElasticSearch::Request
15
14
  #
16
15
  # If a block is given, register it for both failure and success.
17
16
  def execute(&block)
18
- use_callback(&block) if block_given
17
+ use_callback(&block) if block_given?
19
18
  action = @prep.execute(@handler)
20
19
  return action
21
20
  end
@@ -25,6 +24,14 @@ class ElasticSearch::BulkRequest < ElasticSearch::Request
25
24
  return @prep.execute.actionGet()
26
25
  end
27
26
 
27
+ def index(index, type, id=nil, data={})
28
+ req = org.elasticsearch.action.index.IndexRequest.new(index)
29
+ req.type(type) if type
30
+ req.id(id.to_s) if id
31
+ req.source(data)
32
+ @prep.add(req)
33
+ end
34
+
28
35
  def <<(request)
29
36
  @prep.add(request)
30
37
  end # def <<
@@ -49,6 +49,13 @@ class ElasticSearch::Client
49
49
 
50
50
  end # def initialize
51
51
 
52
+ # Get a new BulkRequest for sending multiple updates to elasticsearch in one
53
+ # request.
54
+ public
55
+ def bulk
56
+ ElasticSearch::BulkRequest.new(@client)
57
+ end # def bulk
58
+
52
59
  # Index a new document
53
60
  #
54
61
  # args:
@@ -1,4 +1,5 @@
1
1
  require "jruby-elasticsearch/client"
2
+ require "jruby-elasticsearch/bulkrequest"
2
3
 
3
4
  #class Proc
4
5
  #include java.lang.Runnable
@@ -0,0 +1,72 @@
1
+ require "test/unit"
2
+
3
+ class TestElasticSearch < Test::Unit::TestCase
4
+ def setup
5
+ # Require all the elasticsearch libs
6
+ raise "Please set ELASTICSEARCH_HOME" if ENV['ELASTICSEARCH_HOME'].nil?
7
+ Dir[File.join(ENV['ELASTICSEARCH_HOME'],"lib/*.jar")].each do |jar|
8
+ require jar
9
+ end
10
+
11
+ $:.unshift("lib")
12
+ require "jruby-elasticsearch"
13
+
14
+ # Start a local elasticsearch node
15
+ builder = org.elasticsearch.node.NodeBuilder.nodeBuilder
16
+ builder.local(true)
17
+ @elasticsearch = builder.node
18
+ @elasticsearch.start
19
+
20
+ # Create a client which will find a nearby elasticsearch cluster using
21
+ # the default discovery mechanism.
22
+ @client = ElasticSearch::Client.new({:type => :local})
23
+ end
24
+
25
+ def test_index_asynchronously
26
+ data = { "fizzle" => "dazzle", "pants" => "off" }
27
+ req = @client.index("twitter", "tweet", data)
28
+
29
+ # Set up async callbacks
30
+ done = false
31
+ req.on(:success) do |response|
32
+ assert_not_nil response
33
+ done = true
34
+ end.on(:failure) do |exception|
35
+ raise exception
36
+ done = true
37
+ end
38
+
39
+ # Execute it, but do it asynchronously.
40
+ req.execute
41
+
42
+ # Wait until we are done.
43
+ while !done
44
+ sleep 1
45
+ end
46
+ end
47
+
48
+ def test_bulk_index_asynchronously
49
+ data = { "fizzle" => "dazzle", "pants" => "off" }
50
+ bulk = @client.bulk
51
+ bulk.index("twitter", "tweet1", data)
52
+ bulk.index("twitter", "tweet2")
53
+
54
+ # Set up async callbacks
55
+ done = false
56
+ bulk.on(:success) do |response|
57
+ assert_not_nil response
58
+ done = true
59
+ end.on(:failure) do |exception|
60
+ raise exception
61
+ done = true
62
+ end
63
+
64
+ # Execute it, but do it asynchronously.
65
+ bulk.execute
66
+
67
+ # Wait until we are done.
68
+ while !done
69
+ sleep 1
70
+ end
71
+ end
72
+ end
metadata CHANGED
@@ -1,27 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jruby-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 10
10
- version: 0.0.10
5
+ version: 0.0.11
11
6
  platform: ruby
12
7
  authors:
13
- - Jordan Sissel
8
+ - Jordan Sissel
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-07-30 00:00:00 -07:00
13
+ date: 2011-10-11 00:00:00 -07:00
19
14
  default_executable:
20
15
  dependencies: []
21
16
 
22
17
  description: ...
23
18
  email:
24
- - jls@semicomplete.com
19
+ - jls@semicomplete.com
25
20
  executables: []
26
21
 
27
22
  extensions: []
@@ -29,47 +24,42 @@ extensions: []
29
24
  extra_rdoc_files: []
30
25
 
31
26
  files:
32
- - lib/jruby-elasticsearch.rb
33
- - lib/jruby-elasticsearch/bulkstream.rb
34
- - lib/jruby-elasticsearch/bulkrequest.rb
35
- - lib/jruby-elasticsearch/actionlistener.rb
36
- - lib/jruby-elasticsearch/searchrequest.rb
37
- - lib/jruby-elasticsearch/indexrequest.rb
38
- - lib/jruby-elasticsearch/request.rb
39
- - lib/jruby-elasticsearch/namespace.rb
40
- - lib/jruby-elasticsearch/client.rb
27
+ - lib/jruby-elasticsearch.rb
28
+ - lib/jruby-elasticsearch/indexrequest.rb
29
+ - lib/jruby-elasticsearch/bulkstream.rb
30
+ - lib/jruby-elasticsearch/actionlistener.rb
31
+ - lib/jruby-elasticsearch/searchrequest.rb
32
+ - lib/jruby-elasticsearch/namespace.rb
33
+ - lib/jruby-elasticsearch/bulkrequest.rb
34
+ - lib/jruby-elasticsearch/request.rb
35
+ - lib/jruby-elasticsearch/client.rb
36
+ - test/test_integration.rb
41
37
  has_rdoc: true
42
38
  homepage: https://github.com/jordansissel/jruby-elasticsearch
43
39
  licenses:
44
- - Apache License (2.0)
40
+ - Apache License (2.0)
45
41
  post_install_message:
46
42
  rdoc_options: []
47
43
 
48
44
  require_paths:
49
- - lib
50
- - lib
45
+ - lib
46
+ - lib
51
47
  required_ruby_version: !ruby/object:Gem::Requirement
52
48
  none: false
53
49
  requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: "0"
60
53
  required_rubygems_version: !ruby/object:Gem::Requirement
61
54
  none: false
62
55
  requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- hash: 3
66
- segments:
67
- - 0
68
- version: "0"
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: "0"
69
59
  requirements: []
70
60
 
71
61
  rubyforge_project:
72
- rubygems_version: 1.6.2
62
+ rubygems_version: 1.5.1
73
63
  signing_key:
74
64
  specification_version: 3
75
65
  summary: JRuby API for ElasticSearch using the native ES Java API