algoliasearch 1.1.0 → 1.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
- ---
2
- SHA1:
3
- data.tar.gz: a974ff4aaf5416cf977a4e78115b0a7b84c850ce
4
- metadata.gz: dbaece1db314ffe49265c381ceb4f41bb746fc52
5
- SHA512:
6
- data.tar.gz: c4961df560776a7478ba656733e9b6fb5273739c6f0331e2f4d10965e27098a5e1f5bfe860099a6e03e1ebee948d5fda802be93828fd83d7ca7e20edc94739e0
7
- metadata.gz: 4db8478142afde6195bf9b61f569be4a02c0bd09d828decaf4a3ed6632495d7508652bdb33168b6f2078c433a542a59033008678b15258e4fec4b2c5de6c4abd
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c145379f798d496330164e5642604b8922cbe13c
4
+ data.tar.gz: f35c8286d93ff3ddd4cc711e4986de2b0ab94799
5
+ SHA512:
6
+ metadata.gz: 2d97e9777527d24920d9083c9a85e0e0226c4711ecf9a9159d54b0436c7f9f6be5796dbca83ddc672aa397eed1002647cfed3ba597876eb4425f3151be515219
7
+ data.tar.gz: 6770a224524fed3eae61300e24e33bc44c98ce01d84de13dbf048a1b228550edd2c88424764552a1cab17bf3b665514143b7bce1dc8ebe28f73611499394da35
@@ -1,34 +1,67 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- addressable (2.3.4)
5
- crack (0.3.2)
4
+ addressable (2.3.5)
5
+ builder (3.2.2)
6
+ crack (0.4.1)
7
+ safe_yaml (~> 0.9.0)
6
8
  curb (0.8.4)
7
- diff-lcs (1.1.3)
8
- git (1.2.5)
9
- jeweler (1.8.4)
9
+ diff-lcs (1.2.4)
10
+ faraday (0.8.8)
11
+ multipart-post (~> 1.2.0)
12
+ git (1.2.6)
13
+ github_api (0.10.1)
14
+ addressable
15
+ faraday (~> 0.8.1)
16
+ hashie (>= 1.2)
17
+ multi_json (~> 1.4)
18
+ nokogiri (~> 1.5.2)
19
+ oauth2
20
+ hashie (2.0.5)
21
+ highline (1.6.19)
22
+ httpauth (0.2.0)
23
+ jeweler (1.8.7)
24
+ builder
10
25
  bundler (~> 1.0)
11
26
  git (>= 1.2.5)
27
+ github_api (= 0.10.1)
28
+ highline (>= 1.6.15)
29
+ nokogiri (= 1.5.10)
12
30
  rake
13
31
  rdoc
14
32
  json (1.8.0)
15
- rake (10.0.4)
16
- rdoc (3.12.2)
33
+ jwt (0.1.8)
34
+ multi_json (>= 1.5)
35
+ multi_json (1.8.0)
36
+ multi_xml (0.5.5)
37
+ multipart-post (1.2.0)
38
+ nokogiri (1.5.10)
39
+ oauth2 (0.9.2)
40
+ faraday (~> 0.8)
41
+ httpauth (~> 0.2)
42
+ jwt (~> 0.1.4)
43
+ multi_json (~> 1.0)
44
+ multi_xml (~> 0.5)
45
+ rack (~> 1.2)
46
+ rack (1.5.2)
47
+ rake (10.1.0)
48
+ rdoc (4.0.1)
17
49
  json (~> 1.4)
18
50
  redgreen (1.2.2)
19
- rspec (2.11.0)
20
- rspec-core (~> 2.11.0)
21
- rspec-expectations (~> 2.11.0)
22
- rspec-mocks (~> 2.11.0)
23
- rspec-core (2.11.1)
24
- rspec-expectations (2.11.3)
25
- diff-lcs (~> 1.1.3)
26
- rspec-mocks (2.11.2)
27
- shoulda-context (1.0.2)
28
- test-unit (2.5.4)
29
- webmock (1.9.0)
51
+ rspec (2.14.1)
52
+ rspec-core (~> 2.14.0)
53
+ rspec-expectations (~> 2.14.0)
54
+ rspec-mocks (~> 2.14.0)
55
+ rspec-core (2.14.5)
56
+ rspec-expectations (2.14.3)
57
+ diff-lcs (>= 1.1.3, < 2.0)
58
+ rspec-mocks (2.14.3)
59
+ safe_yaml (0.9.7)
60
+ shoulda-context (1.1.5)
61
+ test-unit (2.5.5)
62
+ webmock (1.13.0)
30
63
  addressable (>= 2.2.7)
31
- crack (>= 0.1.7)
64
+ crack (>= 0.3.2)
32
65
 
33
66
  PLATFORMS
34
67
  ruby
data/README.md CHANGED
@@ -24,6 +24,8 @@ Table of Content
24
24
  1. [Wait indexing](#wait-indexing)
25
25
  1. [Batch writes](#batch-writes)
26
26
  1. [Security / User API Keys](#security--user-api-keys)
27
+ 1. [Copy or rename an index](#copy-or-rename-an-index)
28
+ 1. [Logs](#logs)
27
29
 
28
30
  Setup
29
31
  -------------
@@ -100,6 +102,8 @@ You can use the following optional arguments:
100
102
  * **prefixAll**: all query words are interpreted as prefixes (default behavior).
101
103
  * **prefixLast**: only the last word is interpreted as a prefix. This option is recommended if you have a lot of content to speedup the processing.
102
104
  * **prefixNone**: no query word is interpreted as a prefix. This option is not recommended.
105
+ * **numerics**: specify the list of numeric filters you want to apply separated by a comma. The syntax of one filter is `attributeName` followed by `operand` followed by `value`. Supported operands are `<`, `<=`, `=`, `>` and `>=`.
106
+ You can have multiple conditions on one attribute like for example `numerics=price>100,price<1000`.
103
107
  * **tags**: filter the query by a set of tags. You can AND tags by separating them by commas. To OR tags, you must add parentheses. For example, `tags=tag1,(tag2,tag3)` means *tag1 AND (tag2 OR tag3)*.<br/>At indexing, tags should be added in the _tags attribute of objects (for example `{"_tags":["tag1","tag2"]}` )
104
108
 
105
109
  ```ruby
@@ -251,7 +255,7 @@ You can retrieve all settings using the `getSettings` function. The result will
251
255
  * **attributesToRetrieve**: (array of strings) default list of attributes to retrieve in objects.
252
256
  * **attributesToHighlight**: (array of strings) default list of attributes to highlight.
253
257
  * **attributesToSnippet**: (array of strings) default list of attributes to snippet alongside the number of words to return (syntax is 'attributeName:nbWords')<br/>By default no snippet is computed.
254
- * **attributesToIndex**: (array of strings) the list of fields you want to index.<br/>By default all textual attributes of your objects are indexed, but you should update it to get optimal results.<br/>This parameter has two important uses:
258
+ * **attributesToIndex**: (array of strings) the list of fields you want to index.<br/>By default all textual and numerical attributes of your objects are indexed, but you should update it to get optimal results.<br/>This parameter has two important uses:
255
259
  * *Limits the attributes to index*.<br/>For example if you store a binary image in base64, you want to store it and be able to retrieve it but you don't want to search in the base64 string.
256
260
  * *Controls part of the ranking*.<br/>Matches in attributes at the beginning of the list will be considered more important than matches in attributes further down the list.
257
261
  * **ranking**: (array of strings) controls the way hits are sorted.<br/>We have six available criteria:
@@ -393,3 +397,45 @@ Algolia.delete_user_key("f420238212c54dcfad07ea0aa6d5c45f")
393
397
  # Deletes an index specific key
394
398
  index.delete_user_key("71671c38001bf3ac857bc82052485107")
395
399
  ```
400
+
401
+ Copy or rename an index
402
+ -------------
403
+
404
+ You can easily copy or rename an existing index using the `copy` and `move` commands.
405
+ **Note**: Move and copy commands overwrite destination index.
406
+
407
+ The move command is particularly useful is you want to update a big index atomically from one version to another. For example, if you recreate your index `MyIndex` each night from a database by batch, you just have to:
408
+ 1. Import your database in a new index using [batches](#batch-writes). Let's call this new index `MyNewIndex`.
409
+ 1. Rename `MyNewIndex` in `MyIndex` using the move command. This will automatically override the old index and new queries will be served on the new one.
410
+
411
+ ```ruby
412
+ # Rename MyNewIndex in MyIndex
413
+ puts Algolia.move_index("MyNewIndex", "MyIndex")
414
+ # Copy MyNewIndex in MyIndex
415
+ puts Algolia.copy_index("MyNewIndex", "MyIndex")
416
+ ```
417
+
418
+ Logs
419
+ -------------
420
+
421
+ You can retrieve the last logs via this API. Each log entry contains:
422
+ * Timestamp in ISO-8601 format
423
+ * Client IP
424
+ * Request Headers (API-Key is obfuscated)
425
+ * Request URL
426
+ * Request method
427
+ * Request body
428
+ * Answer HTTP code
429
+ * Answer body
430
+ * SHA1 ID of entry
431
+
432
+ You can retrieve the logs of your last 1000 API calls and browse them using the offset/length parameters:
433
+ * ***offset***: Specify the first entry to retrieve (0-based, 0 is the most recent log entry). Default to 0.
434
+ * ***length***: Specify the maximum number of entries to retrieve starting at offset. Defaults to 10. Maximum allowed value: 1000.
435
+
436
+ ```ruby
437
+ # Get last 10 log entries
438
+ puts Algolia.get_logs.to_json
439
+ # Get last 100 log entries
440
+ puts Algolia.get_logs(0, 100).to_json
441
+ ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.1.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "algoliasearch"
8
- s.version = "1.1.0"
8
+ s.version = "1.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Algolia"]
12
- s.date = "2013-09-17"
12
+ s.date = "2013-10-02"
13
13
  s.description = "A simple Ruby client for the algolia.com REST API"
14
14
  s.email = "contact@algolia.com"
15
15
  s.extra_rdoc_files = [
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.homepage = "http://github.com/algolia/algoliasearch-client-ruby"
35
35
  s.licenses = ["MIT"]
36
36
  s.require_paths = ["lib"]
37
- s.rubygems_version = "2.0.5"
37
+ s.rubygems_version = "2.0.3"
38
38
  s.summary = "A simple Ruby client for the algolia.com REST API"
39
39
 
40
40
  if s.respond_to? :specification_version then
@@ -52,7 +52,7 @@ module Algolia
52
52
  session.post_body = data
53
53
  session.http_post
54
54
  when :PUT
55
- session.http_put(data)
55
+ session.put(data)
56
56
  when :DELETE
57
57
  session.http_delete
58
58
  end
@@ -76,6 +76,10 @@ module Algolia
76
76
  # @param args (optional) if set, contains an associative array with query parameters:
77
77
  # - attributes: a string that contains attribute names to retrieve separated by a comma.
78
78
  # By default all attributes are retrieved.
79
+ # - numerics: specify the list of numeric filters you want to apply separated by a comma.
80
+ # The syntax of one filter is `attributeName` followed by `operand` followed by `value`.
81
+ # Supported operands are `<`, `<=`, `=`, `>` and `>=`.
82
+ # You can have multiple conditions on one attribute like for example `numerics=price>100,price<1000`.
79
83
  # - attributesToHighlight: a string that contains attribute names to highlight separated by a comma.
80
84
  # By default indexed attributes are highlighted.
81
85
  # - attributesToSnippet: a string that contains the names of attributes to snippet alongside the number
@@ -238,7 +242,7 @@ module Algolia
238
242
  # of words to return (syntax is 'attributeName:nbWords').
239
243
  # By default no snippet is computed.
240
244
  # - attributesToIndex: (array of strings) the list of fields you want to index.
241
- # By default all textual attributes of your objects are indexed, but you should update it to get optimal
245
+ # By default all textual and numerical attributes of your objects are indexed, but you should update it to get optimal
242
246
  # results. This parameter has two important uses:
243
247
  # - Limit the attributes to index.
244
248
  # For example if you store a binary image in base64, you want to store it in the index but you
metadata CHANGED
@@ -1,93 +1,135 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: algoliasearch
3
- version: !ruby/object:Gem::Version
4
- version: 1.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.1
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Algolia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2013-09-17 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
11
+ date: 2013-10-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
15
14
  name: curb
16
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- requirements:
19
- - &id002
20
- - ">="
21
- - !ruby/object:Gem::Version
22
- version: "0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
23
20
  type: :runtime
24
- version_requirements: *id001
25
- - !ruby/object:Gem::Dependency
26
- name: bundler
27
21
  prerelease: false
28
- requirement: &id003 !ruby/object:Gem::Requirement
29
- requirements:
30
- - *id002
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
31
34
  type: :development
32
- version_requirements: *id003
33
- - !ruby/object:Gem::Dependency
34
- name: jeweler
35
35
  prerelease: false
36
- requirement: &id004 !ruby/object:Gem::Requirement
37
- requirements:
38
- - *id002
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jeweler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
39
48
  type: :development
40
- version_requirements: *id004
41
- - !ruby/object:Gem::Dependency
42
- name: test-unit
43
49
  prerelease: false
44
- requirement: &id005 !ruby/object:Gem::Requirement
45
- requirements:
46
- - *id002
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: test-unit
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  type: :development
48
- version_requirements: *id005
49
- - !ruby/object:Gem::Dependency
50
- name: rspec
51
63
  prerelease: false
52
- requirement: &id006 !ruby/object:Gem::Requirement
53
- requirements:
54
- - *id002
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
55
76
  type: :development
56
- version_requirements: *id006
57
- - !ruby/object:Gem::Dependency
58
- name: shoulda-context
59
77
  prerelease: false
60
- requirement: &id007 !ruby/object:Gem::Requirement
61
- requirements:
62
- - *id002
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: shoulda-context
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
63
90
  type: :development
64
- version_requirements: *id007
65
- - !ruby/object:Gem::Dependency
66
- name: webmock
67
91
  prerelease: false
68
- requirement: &id008 !ruby/object:Gem::Requirement
69
- requirements:
70
- - *id002
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: webmock
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
71
104
  type: :development
72
- version_requirements: *id008
73
- - !ruby/object:Gem::Dependency
74
- name: redgreen
75
105
  prerelease: false
76
- requirement: &id009 !ruby/object:Gem::Requirement
77
- requirements:
78
- - *id002
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: redgreen
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
79
118
  type: :development
80
- version_requirements: *id009
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
81
125
  description: A simple Ruby client for the algolia.com REST API
82
126
  email: contact@algolia.com
83
127
  executables: []
84
-
85
128
  extensions: []
86
-
87
- extra_rdoc_files:
129
+ extra_rdoc_files:
88
130
  - LICENSE.txt
89
131
  - README.md
90
- files:
132
+ files:
91
133
  - Gemfile
92
134
  - Gemfile.lock
93
135
  - LICENSE.txt
@@ -102,27 +144,27 @@ files:
102
144
  - lib/algolia/protocol.rb
103
145
  - lib/algoliasearch.rb
104
146
  homepage: http://github.com/algolia/algoliasearch-client-ruby
105
- licenses:
147
+ licenses:
106
148
  - MIT
107
149
  metadata: {}
108
-
109
150
  post_install_message:
110
151
  rdoc_options: []
111
-
112
- require_paths:
152
+ require_paths:
113
153
  - lib
114
- required_ruby_version: !ruby/object:Gem::Requirement
115
- requirements:
116
- - *id002
117
- required_rubygems_version: !ruby/object:Gem::Requirement
118
- requirements:
119
- - *id002
154
+ required_ruby_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - '>='
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
120
164
  requirements: []
121
-
122
165
  rubyforge_project:
123
166
  rubygems_version: 2.0.3
124
167
  signing_key:
125
168
  specification_version: 4
126
169
  summary: A simple Ruby client for the algolia.com REST API
127
170
  test_files: []
128
-