oss_rb 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3b717d6502f67f75077aaaac92a194f00e0fe617
4
- data.tar.gz: 12c35c15e835a2a2a4673baa9cef0bbd552ebb04
3
+ metadata.gz: 44e31bb9abb8bfdefd8df1b447a0916377be69f1
4
+ data.tar.gz: d006e029fa82add99b9fb828be1f412b45f9f6a1
5
5
  SHA512:
6
- metadata.gz: 0f06c34432c9f7f89c157edb279c627597c3d57952ec455ab260e709b8c273de6fa8634d9ab0318d1b7f30ce5c46cf92aab114fe08ebda9363aae8022a28f11e
7
- data.tar.gz: 20b734f21cd01f4e7a7b0e9e37642093a036fb299ef2fe85b00aba208d4b4cce34c663a351cffa375eb554efd93b9d3ade35ba57ddcb709fa593fce7a2d93f97
6
+ metadata.gz: 274130699bfb6caec39bd1cf11ffa2eb30f8cbdcfa827ddb072a9779057f00b731585e3120b740f5f0a9c3b18f5a26e180799ff928e315eef8dacf0d1022dfe3
7
+ data.tar.gz: 63054303ba6c27f74d9bcc0557228155dd49866e2338d55be95416e750f85989191ba3cdff898b0404fdf71e7adb27ef5d60c2c9ee99ba0ac6696137cdf85883
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oss_rb (0.0.1)
4
+ oss_rb (0.1.0)
5
5
  activesupport
6
6
  rest-client
7
7
 
@@ -14,7 +14,7 @@ GEM
14
14
  multi_json (~> 1.3)
15
15
  thread_safe (~> 0.1)
16
16
  tzinfo (~> 0.3.37)
17
- atomic (1.1.10)
17
+ atomic (1.1.13)
18
18
  coderay (1.0.9)
19
19
  diff-lcs (1.2.4)
20
20
  ffi (1.3.1)
@@ -34,7 +34,7 @@ GEM
34
34
  libnotify (~> 0.1.3)
35
35
  rb-inotify (>= 0.5.1)
36
36
  spoon (~> 0.0.1)
37
- i18n (0.6.4)
37
+ i18n (0.6.5)
38
38
  libnotify (0.1.4)
39
39
  ffi (>= 0.6.2)
40
40
  listen (1.2.2)
@@ -43,9 +43,9 @@ GEM
43
43
  rb-kqueue (>= 0.2)
44
44
  lumberjack (1.0.4)
45
45
  method_source (0.8.1)
46
- mime-types (1.23)
46
+ mime-types (1.25)
47
47
  minitest (4.7.5)
48
- multi_json (1.7.7)
48
+ multi_json (1.7.9)
49
49
  net-http-spy (0.2.1)
50
50
  pry (0.9.12.2)
51
51
  coderay (~> 1.0.5)
data/README.md CHANGED
@@ -1,8 +1,11 @@
1
1
  # oss_rb
2
2
 
3
+ A Ruby Client for OpenSearchServer
3
4
 
4
- A very initial Ruby Client for OpenSearchServer http://www.open-search-server.com
5
+ ## Requirement
5
6
 
7
+ A running OpenSearchServer instance (>= v1.5)
8
+ http://www.open-search-server.com
6
9
 
7
10
  ## Installation
8
11
 
@@ -20,7 +23,90 @@ Or install it yourself as:
20
23
 
21
24
  ## Usage
22
25
 
23
- TODO: Write usage instructions here
26
+ Obtain a client instance
27
+ ```ruby
28
+ index = Oss::Index.new('my_index', 'http://localhost:8080')
29
+ ```
30
+
31
+ Create an index
32
+ ```ruby
33
+ index.create 'EMPTY_INDEX'
34
+ ```
35
+
36
+ Create some fields
37
+ ```ruby
38
+ index.set_field({'name' => 'id', 'indexed' => 'YES'})
39
+ index.set_field(
40
+ { 'name' => 'name',
41
+ 'analyzer' => 'StandardAnalyzer',
42
+ 'stored' => 'YES',
43
+ 'indexed' => 'YES'
44
+ }
45
+ )
46
+ ```
47
+
48
+ Set the default field, and the primary key
49
+ ```ruby
50
+ index.set_field_default_unique('name', 'id')
51
+ ```
52
+
53
+ Put a document in the index
54
+ ```ruby
55
+ doc = Oss::Document.new
56
+ doc.fields << Oss::Field.new('id', "1")
57
+ doc.fields << Oss::Field.new('name', "john smith")
58
+ index.documents << doc
59
+ index.index!
60
+ ```
61
+
62
+ Ok, time to make a search
63
+ ```ruby
64
+ result = index.search_field(
65
+ { 'query' => 'john',
66
+ 'searchFields' => [ {'field' => 'name', 'phrase'=>true, 'boost' => 1.0} ],
67
+ 'start' => 0,
68
+ 'rows' => 10,
69
+ 'returnedFields' => ['id', 'name']
70
+ }
71
+ )
72
+ ```
73
+
74
+ It is possible to store a search template
75
+ ```ruby
76
+ index.search_store_template_field('fieldsearch',
77
+ { 'query' => 'john',
78
+ 'searchFields' => [ {'field' => 'name', 'phrase'=>true, 'boost' => 1.0} ],
79
+ 'start' => 0,
80
+ 'rows' => 10,
81
+ 'returnedFields' => ['id', 'name']
82
+ }
83
+ )
84
+ ```
85
+
86
+ Use the stored search template to make a search
87
+ ```ruby
88
+ result = index.search_template_field('fieldsearch', {'query' => 'john2'})
89
+ ```
90
+
91
+ Deleting a search template
92
+ ```ruby
93
+ index.search_template_delete('fieldsearch')
94
+ ```
95
+
96
+ You may remove documents by value or by query
97
+ ```ruby
98
+ index.delete_document_by_value('id', 1)
99
+ index.delete_document_by_query('name:john')
100
+ ```
101
+ Or remove field
102
+ ```ruby
103
+ index.delete_field('name')
104
+ ```
105
+
106
+ And finally here is how to delete the index
107
+ ```ruby
108
+ index.delete!
109
+ ```
24
110
 
25
111
  ## Contributing
26
112
 
@@ -1,3 +1,3 @@
1
1
  module Oss
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/oss_rb.rb CHANGED
@@ -32,14 +32,14 @@ module Oss
32
32
  # Create or update the field defined by the given hash
33
33
  # http://github.com/jaeksoft/opensearchserver/wiki/Field-create-update
34
34
  def set_field(field_params)
35
- api_put_json "services/rest/index/#{@name}/field", field_params
35
+ api_put_json "services/rest/index/#{@name}/field/#{field_params['name']}", field_params
36
36
  end
37
37
 
38
38
  # Set the default field and the unique field
39
39
  # http://github.com/jaeksoft/opensearchserver/wiki/Field-set-default-unique
40
40
  def set_field_default_unique(default, unique)
41
41
  params = { 'unique' => unique, 'default' => default }
42
- api_put "services/rest/index/#{@name}/field", '', params
42
+ api_post "services/rest/index/#{@name}/field", '', params
43
43
  end
44
44
 
45
45
  # Delete the field matching the give name
data/oss_rb.gemspec CHANGED
@@ -9,10 +9,12 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Ori Pekelman", "Emmanuel Keller"]
10
10
  spec.email = ["ori@pekelman.com", "ekeller@open-search-server.com"]
11
11
  spec.description = %q{OpenSearchServer Ruby Client}
12
- spec.summary = %q{OpenSearchServer Ruby Client}
13
- spec.homepage = "http://www.open-search-server.com/"
12
+ spec.summary = %q{A Ruby Client library for OpenSearchServer}
13
+ spec.homepage = "https://github.com/jaeksoft/oss_rb/"
14
14
  spec.license = "MIT"
15
15
 
16
+ spec.metadata = { "Issues" => "https://github.com/jaeksoft/oss_rb/issues" }
17
+
16
18
  spec.files = `git ls-files`.split($/)
17
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
@@ -4,7 +4,7 @@ describe Oss::Index do
4
4
  before(:all) do
5
5
  @index_name = "test_oss_rb"
6
6
  @index = Oss::Index.new(@index_name, ENV['OSS_RB_URL'], ENV['OSS_RB_LOGIN'], ENV['OSS_RB_KEY'])
7
- @index.delete!
7
+ @index.delete! if @index.list.include? @index_name
8
8
  end
9
9
 
10
10
  describe '#OssIndex(name)' do
@@ -29,16 +29,16 @@ describe Oss::Index do
29
29
  it "delete index" do
30
30
  index = Oss::Index.new("DELETE_ME", ENV['OSS_RB_URL'], ENV['OSS_RB_LOGIN'], ENV['OSS_RB_KEY'])
31
31
  index.create('EMPTY_INDEX')
32
- index.list.should include "DELETE_ME"
32
+ index.list.should(include, "DELETE_ME")
33
33
  index.delete!
34
- index.list.should_not include "DELETE_ME"
34
+ index.list.should_not(include, "DELETE_ME")
35
35
  end
36
36
  end
37
37
 
38
38
  describe '#create index' do
39
39
  it "create index" do
40
40
  @index.create('WEB_CRAWLER') unless @index.list.include? @index_name
41
- @index.list.should include @index_name
41
+ @index.list.should(include, @index_name)
42
42
  end
43
43
  end
44
44
 
@@ -77,7 +77,7 @@ describe Oss::Index do
77
77
  @index.set_field_default_unique('user', 'id')
78
78
 
79
79
  (1..15).each do |i|
80
- doc = Oss::Document.new()
80
+ doc = Oss::Document.new
81
81
  doc.fields << Oss::Field.new('id', "#{i}")
82
82
  doc.fields << Oss::Field.new('user', "john#{i}")
83
83
  @index.documents << doc
@@ -95,11 +95,30 @@ describe Oss::Index do
95
95
  result['documents'].length.should == 10
96
96
 
97
97
  @index.search_store_template_pattern('patternsearch', params);
98
- result = @index.search_template_pattern('patternsearch', params);
98
+ result = @index.search_template_pattern('patternsearch', {'query' => 'user:j*'});
99
99
  result['numFound'].should == 15
100
100
  result['documents'].length.should == 10
101
101
 
102
- @index.search_template_delete('search');
102
+ @index.search_template_delete('patternsearch');
103
+
104
+ params = {
105
+ 'query' => 'john1',
106
+ 'searchFields' => [ {'field' => 'user', 'phrase'=>true, 'boost' => 1.0} ],
107
+ 'start' => 0,
108
+ 'rows' => 10,
109
+ "returnedFields" => ['id', 'user']
110
+ }
111
+ result= @index.search_field(params);
112
+ result['numFound'].should == 1
113
+ result['documents'].length.should == 1
114
+
115
+ @index.search_store_template_field('fieldsearch', params);
116
+ result = @index.search_template_field('fieldsearch', {'query' => 'john2'});
117
+ result['numFound'].should == 1
118
+ result['documents'].length.should == 1
119
+
120
+ @index.search_template_delete('fieldsearch');
121
+
103
122
  end
104
123
  end
105
124
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oss_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ori Pekelman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-02 00:00:00.000000000 Z
12
+ date: 2013-10-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -89,10 +89,11 @@ files:
89
89
  - oss_rb.gemspec
90
90
  - spec/api/api_v1_spec.rb
91
91
  - spec/spec_helper.rb
92
- homepage: http://www.open-search-server.com/
92
+ homepage: https://github.com/jaeksoft/oss_rb/
93
93
  licenses:
94
94
  - MIT
95
- metadata: {}
95
+ metadata:
96
+ Issues: https://github.com/jaeksoft/oss_rb/issues
96
97
  post_install_message:
97
98
  rdoc_options: []
98
99
  require_paths:
@@ -109,10 +110,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
110
  version: '0'
110
111
  requirements: []
111
112
  rubyforge_project:
112
- rubygems_version: 2.0.4
113
+ rubygems_version: 2.1.5
113
114
  signing_key:
114
115
  specification_version: 4
115
- summary: OpenSearchServer Ruby Client
116
+ summary: A Ruby Client library for OpenSearchServer
116
117
  test_files:
117
118
  - spec/api/api_v1_spec.rb
118
119
  - spec/spec_helper.rb