swiftype-app-search 0.5.0 → 0.6.0
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 +4 -4
- data/README.md +54 -1
- data/lib/swiftype-app-search/client/search_settings.rb +35 -0
- data/lib/swiftype-app-search/client.rb +2 -0
- data/lib/swiftype-app-search/version.rb +1 -1
- data/spec/client_spec.rb +61 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 171ac3ad757cd4d799653d5db78110c6001cbb025059410b7b8f32e180aa26c4
|
4
|
+
data.tar.gz: 93d90fba2fed89c39847675520eb4a63d549e41ea63db578f979f7b81e398011
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 811715bd4df0576ac07213595464aed2cb989a32336c1d98c12c6b001e6c03f0cb5981dfbb8fb8bf5d919b4d6b44f9e192e83672d3b00ac6e2ca95c0abfaca26
|
7
|
+
data.tar.gz: a7ba625d89a1a681666dcf75180cf3ad4208990d15e49380f0b47e19846b79e8d9d5baa19ce3b288b004e05a4883e1ea98549c666b22c4033789925264369800
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ To install the gem, execute:
|
|
25
25
|
gem install swiftype-app-search
|
26
26
|
```
|
27
27
|
|
28
|
-
Or place `gem 'swiftype-app-search', '~> 0.
|
28
|
+
Or place `gem 'swiftype-app-search', '~> 0.6.0'` in your `Gemfile` and run `bundle install`.
|
29
29
|
|
30
30
|
## Usage
|
31
31
|
|
@@ -206,6 +206,59 @@ options = {
|
|
206
206
|
client.query_suggestion(engine_name, 'cat', options)
|
207
207
|
```
|
208
208
|
|
209
|
+
#### Show Search Settings
|
210
|
+
|
211
|
+
```ruby
|
212
|
+
engine_name = 'favorite-videos'
|
213
|
+
|
214
|
+
client.show_settings(engine_name)
|
215
|
+
```
|
216
|
+
|
217
|
+
#### Update Search Settings
|
218
|
+
|
219
|
+
```ruby
|
220
|
+
engine_name = 'favorite-videos'
|
221
|
+
|
222
|
+
settings = {
|
223
|
+
"search_fields" => {
|
224
|
+
"id" => {
|
225
|
+
"weight" => 1
|
226
|
+
},
|
227
|
+
"url" => {
|
228
|
+
"weight" => 1
|
229
|
+
},
|
230
|
+
"title" => {
|
231
|
+
"weight" => 1
|
232
|
+
},
|
233
|
+
"body" => {
|
234
|
+
"weight" => 1
|
235
|
+
},
|
236
|
+
},
|
237
|
+
"boosts" => {
|
238
|
+
"title" => [
|
239
|
+
{
|
240
|
+
"type" => "value",
|
241
|
+
"factor" => 9.5,
|
242
|
+
"operation" => "multiply",
|
243
|
+
"value" => [
|
244
|
+
"Titanic"
|
245
|
+
]
|
246
|
+
}
|
247
|
+
]
|
248
|
+
}
|
249
|
+
}
|
250
|
+
|
251
|
+
client.update_settings(engine_name, settings)
|
252
|
+
```
|
253
|
+
|
254
|
+
#### Reset Search Settings
|
255
|
+
|
256
|
+
```ruby
|
257
|
+
engine_name = 'favorite-videos'
|
258
|
+
|
259
|
+
client.reset_settings(engine_name)
|
260
|
+
```
|
261
|
+
|
209
262
|
## Running Tests
|
210
263
|
|
211
264
|
```bash
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Search Settings is used to adjust weights and boosts
|
2
|
+
module SwiftypeAppSearch
|
3
|
+
class Client
|
4
|
+
module SearchSettings
|
5
|
+
|
6
|
+
# Show all Weights and Boosts applied to the search fields of an Engine.
|
7
|
+
#
|
8
|
+
# @param [String] engine_name the unique Engine name
|
9
|
+
#
|
10
|
+
# @return [Hash] current Search Settings
|
11
|
+
def show_settings(engine_name)
|
12
|
+
get("engines/#{engine_name}/search_settings")
|
13
|
+
end
|
14
|
+
|
15
|
+
# Update Weights or Boosts for search fields of an Engine.
|
16
|
+
#
|
17
|
+
# @param [String] engine_name the unique Engine name
|
18
|
+
# @param [Hash] settings new Search Settings Hash
|
19
|
+
#
|
20
|
+
# @return [Hash] new Search Settings
|
21
|
+
def update_settings(engine_name, settings)
|
22
|
+
put("engines/#{engine_name}/search_settings", settings)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Reset Engine's Search Settings to default values.
|
26
|
+
#
|
27
|
+
# @param [String] engine_name the unique Engine name
|
28
|
+
#
|
29
|
+
# @return [Hash] default Search Settings
|
30
|
+
def reset_settings(engine_name)
|
31
|
+
post("engines/#{engine_name}/search_settings/reset")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -10,6 +10,7 @@ module SwiftypeAppSearch
|
|
10
10
|
autoload :Engines, 'swiftype-app-search/client/engines'
|
11
11
|
autoload :Search, 'swiftype-app-search/client/search'
|
12
12
|
autoload :QuerySuggestion, 'swiftype-app-search/client/query_suggestion'
|
13
|
+
autoload :SearchSettings, 'swiftype-app-search/client/search_settings'
|
13
14
|
|
14
15
|
DEFAULT_TIMEOUT = 15
|
15
16
|
|
@@ -59,5 +60,6 @@ module SwiftypeAppSearch
|
|
59
60
|
include SwiftypeAppSearch::Client::Search
|
60
61
|
include SwiftypeAppSearch::Client::SignedSearchOptions
|
61
62
|
include SwiftypeAppSearch::Client::QuerySuggestion
|
63
|
+
include SwiftypeAppSearch::Client::SearchSettings
|
62
64
|
end
|
63
65
|
end
|
data/spec/client_spec.rb
CHANGED
@@ -353,6 +353,67 @@ describe SwiftypeAppSearch::Client do
|
|
353
353
|
end
|
354
354
|
end
|
355
355
|
|
356
|
+
context 'SearchSettings' do
|
357
|
+
let(:default_settings) { {
|
358
|
+
"search_fields" => {
|
359
|
+
"id" => {
|
360
|
+
"weight" => 1
|
361
|
+
}
|
362
|
+
},
|
363
|
+
"boosts" => {}
|
364
|
+
} }
|
365
|
+
|
366
|
+
let(:updated_settings) { {
|
367
|
+
"search_fields" => {
|
368
|
+
"id" => {
|
369
|
+
"weight" => 3
|
370
|
+
}
|
371
|
+
},
|
372
|
+
"boosts" => {}
|
373
|
+
} }
|
374
|
+
|
375
|
+
before(:each) do
|
376
|
+
client.create_engine(engine_name) rescue SwiftypeAppSearch::BadRequest
|
377
|
+
end
|
378
|
+
|
379
|
+
after(:each) do
|
380
|
+
client.destroy_engine(engine_name) rescue SwiftypeAppSearch::NonExistentRecord
|
381
|
+
end
|
382
|
+
|
383
|
+
describe '#show_settings' do
|
384
|
+
subject { client.show_settings(engine_name) }
|
385
|
+
|
386
|
+
it 'should return default settings' do
|
387
|
+
expect(subject).to match(default_settings)
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
describe '#update_settings' do
|
392
|
+
subject { client.show_settings(engine_name) }
|
393
|
+
|
394
|
+
before do
|
395
|
+
client.update_settings(engine_name, updated_settings)
|
396
|
+
end
|
397
|
+
|
398
|
+
it 'should update search settings' do
|
399
|
+
expect(subject).to match(updated_settings)
|
400
|
+
end
|
401
|
+
end
|
402
|
+
|
403
|
+
describe '#reset_settings' do
|
404
|
+
subject { client.show_settings(engine_name) }
|
405
|
+
|
406
|
+
before do
|
407
|
+
client.update_settings(engine_name, updated_settings)
|
408
|
+
client.reset_settings(engine_name)
|
409
|
+
end
|
410
|
+
|
411
|
+
it 'should reset search settings' do
|
412
|
+
expect(subject).to match(default_settings)
|
413
|
+
end
|
414
|
+
end
|
415
|
+
end
|
416
|
+
|
356
417
|
context 'Engines' do
|
357
418
|
after do
|
358
419
|
client.destroy_engine(engine_name) rescue SwiftypeAppSearch::NonExistentRecord
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swiftype-app-search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Quin Hoxie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
@@ -109,6 +109,7 @@ files:
|
|
109
109
|
- lib/swiftype-app-search/client/engines.rb
|
110
110
|
- lib/swiftype-app-search/client/query_suggestion.rb
|
111
111
|
- lib/swiftype-app-search/client/search.rb
|
112
|
+
- lib/swiftype-app-search/client/search_settings.rb
|
112
113
|
- lib/swiftype-app-search/exceptions.rb
|
113
114
|
- lib/swiftype-app-search/request.rb
|
114
115
|
- lib/swiftype-app-search/utils.rb
|