swiftype-app-search 0.4.4 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +21 -0
- data/README.md +72 -7
- data/lib/swiftype-app-search/client.rb +2 -0
- data/lib/swiftype-app-search/client/query_suggestion.rb +17 -0
- data/lib/swiftype-app-search/version.rb +1 -1
- data/logo-app-search.png +0 -0
- data/spec/client_spec.rb +29 -0
- metadata +5 -3
- data/LICENSE.txt +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8409dce98dbe9ef896e5cc4533cb6b2e6f320fc00b2e1d6d7091c9c1976f3d15
|
4
|
+
data.tar.gz: f3fcbee95672e8a930c7b1f1d182b49b5391e9d843fcdf9875b4b3e26d8b2c0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f94fc9f964ebbba4e37401cd455a551116f9041b5aeba8b6caa56c3fb0bf0ba324f2dca3e434cff3717e9d444b3fa934e21d7a6cbb3401ee7e3f9527f8606a3
|
7
|
+
data.tar.gz: 57d7533faa0660c2b542e1438f514e1aa22978bcd6de13af6d320d4d26f6c675b3cde2d5f3585cf4f7fa2595aeba2c75fe20da05fb1f3655af149110a6d96395
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2019 Elastic
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
CHANGED
@@ -1,8 +1,23 @@
|
|
1
|
-
|
1
|
+
<p align="center"><img src="https://github.com/swiftype/swiftype-app-search-ruby/blob/master/logo-app-search.png?raw=true" alt="Elastic App Search Logo"></p>
|
2
2
|
|
3
|
-
|
3
|
+
<p align="center"><a href="https://circleci.com/gh/swiftype/swiftype-app-search-ruby"><img src="https://circleci.com/gh/swiftype/swiftype-app-search-ruby.svg?style=svg" alt="CircleCI buidl"></a>
|
4
|
+
<a href="https://github.com/swiftype/swiftype-app-search-ruby/releases"><img src="https://img.shields.io/github/release/swiftype/swiftype-app-search-ruby/all.svg?style=flat-square" alt="GitHub release" /></a></p>
|
4
5
|
|
5
|
-
|
6
|
+
> A first-party Ruby client for building excellent, relevant search experiences with Elastic App Search.
|
7
|
+
|
8
|
+
## Contents
|
9
|
+
|
10
|
+
+ [Getting started](#getting-started-)
|
11
|
+
+ [Usage](#usage)
|
12
|
+
+ [Running Tests](#running-tests)
|
13
|
+
+ [Debugging API Calls](#debugging-api-calls)
|
14
|
+
+ [FAQ](#faq-)
|
15
|
+
+ [Contribute](#contribute-)
|
16
|
+
+ [License](#license-)
|
17
|
+
|
18
|
+
***
|
19
|
+
|
20
|
+
## Getting started 🐣
|
6
21
|
|
7
22
|
To install the gem, execute:
|
8
23
|
|
@@ -10,7 +25,7 @@ To install the gem, execute:
|
|
10
25
|
gem install swiftype-app-search
|
11
26
|
```
|
12
27
|
|
13
|
-
Or place `gem 'swiftype-app-search', '~> 0.
|
28
|
+
Or place `gem 'swiftype-app-search', '~> 0.5.0'` in your `Gemfile` and run `bundle install`.
|
14
29
|
|
15
30
|
## Usage
|
16
31
|
|
@@ -23,7 +38,17 @@ It also requires a valid `[API_KEY]`, which authenticates requests to the API. Y
|
|
23
38
|
You can find your `[API_KEY]` and your `[HOST_IDENTIFIER]` within the [Credentials](https://app.swiftype.com/as/credentials) menu:
|
24
39
|
|
25
40
|
```ruby
|
26
|
-
client = SwiftypeAppSearch::Client.new(:host_identifier => 'host-c5s2mj', :api_key => '
|
41
|
+
client = SwiftypeAppSearch::Client.new(:host_identifier => 'host-c5s2mj', :api_key => 'private-mu75psc5egt9ppzuycnc2mc3')
|
42
|
+
```
|
43
|
+
|
44
|
+
### Using with App Search Managed Deploys
|
45
|
+
|
46
|
+
The client can be configured to use a managed deploy by using the
|
47
|
+
`api_endpoint` parameter. Since managed deploys do not rely on a `[HOST_IDENTIFIER]`
|
48
|
+
, it can be omitted.
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
client = SwiftypeAppSearch::Client.new(:api_key => 'private-mu75psc5egt9ppzuycnc2mc3', :api_endpoint => 'http://localhost:3002/api/as/v1/')
|
27
52
|
```
|
28
53
|
|
29
54
|
### API Methods
|
@@ -164,6 +189,23 @@ queries = [{
|
|
164
189
|
client.multi_search(engine_name, queries)
|
165
190
|
```
|
166
191
|
|
192
|
+
#### Query Suggestion
|
193
|
+
|
194
|
+
```ruby
|
195
|
+
engine_name = 'favorite-videos'
|
196
|
+
|
197
|
+
options = {
|
198
|
+
:size => 3,
|
199
|
+
:types => {
|
200
|
+
:documents => {
|
201
|
+
:fields => ['title']
|
202
|
+
}
|
203
|
+
}
|
204
|
+
}
|
205
|
+
|
206
|
+
client.query_suggestion(engine_name, 'cat', options)
|
207
|
+
```
|
208
|
+
|
167
209
|
## Running Tests
|
168
210
|
|
169
211
|
```bash
|
@@ -193,6 +235,29 @@ If you need to debug an API call made by the client, there are a few things you
|
|
193
235
|
to Swiftype Customer Support to help us quickly find your API request and help you troubleshoot
|
194
236
|
your issues.
|
195
237
|
|
196
|
-
##
|
238
|
+
## FAQ 🔮
|
239
|
+
|
240
|
+
### Where do I report issues with the client?
|
241
|
+
|
242
|
+
If something is not working as expected, please open an [issue](https://github.com/swiftype/swiftype-app-search-ruby/issues/new).
|
243
|
+
|
244
|
+
### Where can I learn more about App Search?
|
245
|
+
|
246
|
+
Your best bet is to read the [documentation](https://swiftype.com/documentation/app-search).
|
247
|
+
|
248
|
+
### Where else can I go to get help?
|
249
|
+
|
250
|
+
You can checkout the [Elastic App Search community discuss forums](https://discuss.elastic.co/c/app-search).
|
251
|
+
|
252
|
+
## Contribute 🚀
|
253
|
+
|
254
|
+
We welcome contributors to the project. Before you begin, a couple notes...
|
255
|
+
|
256
|
+
+ Before opening a pull request, please create an issue to [discuss the scope of your proposal](https://github.com/swiftype/swiftype-app-search-ruby/issues).
|
257
|
+
+ Please write simple code and concise documentation, when appropriate.
|
258
|
+
|
259
|
+
## License 📗
|
260
|
+
|
261
|
+
[MIT](https://github.com/swiftype/swiftype-app-search-ruby/blob/master/LICENSE.txt) © [Elastic](https://github.com/elastic)
|
197
262
|
|
198
|
-
|
263
|
+
Thank you to all the [contributors](https://github.com/swiftype/swiftype-app-search-ruby/graphs/contributors)!
|
@@ -9,6 +9,7 @@ module SwiftypeAppSearch
|
|
9
9
|
autoload :Documents, 'swiftype-app-search/client/documents'
|
10
10
|
autoload :Engines, 'swiftype-app-search/client/engines'
|
11
11
|
autoload :Search, 'swiftype-app-search/client/search'
|
12
|
+
autoload :QuerySuggestion, 'swiftype-app-search/client/query_suggestion'
|
12
13
|
|
13
14
|
DEFAULT_TIMEOUT = 15
|
14
15
|
|
@@ -57,5 +58,6 @@ module SwiftypeAppSearch
|
|
57
58
|
include SwiftypeAppSearch::Client::Engines
|
58
59
|
include SwiftypeAppSearch::Client::Search
|
59
60
|
include SwiftypeAppSearch::Client::SignedSearchOptions
|
61
|
+
include SwiftypeAppSearch::Client::QuerySuggestion
|
60
62
|
end
|
61
63
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module SwiftypeAppSearch
|
2
|
+
class Client
|
3
|
+
module QuerySuggestion
|
4
|
+
# Request Query Suggestions
|
5
|
+
#
|
6
|
+
# @param [String] engine_name the unique Engine name
|
7
|
+
# @param [String] query the search query to suggest for
|
8
|
+
# @options options see the {App Search API}[https://swiftype.com/documentation/app-search/] for supported search options.
|
9
|
+
#
|
10
|
+
# @return [Hash] search results
|
11
|
+
def query_suggestion(engine_name, query, options = {})
|
12
|
+
params = Utils.symbolize_keys(options).merge(:query => query)
|
13
|
+
request(:post, "engines/#{engine_name}/query_suggestion", params)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/logo-app-search.png
ADDED
Binary file
|
data/spec/client_spec.rb
CHANGED
@@ -324,6 +324,35 @@ describe SwiftypeAppSearch::Client do
|
|
324
324
|
end
|
325
325
|
end
|
326
326
|
|
327
|
+
context 'QuerySuggest' do
|
328
|
+
describe '#query_suggestion' do
|
329
|
+
let(:query) { 'cat' }
|
330
|
+
let(:options) { { :size => 3, :types => { :documents => { :fields => ['title'] } } } }
|
331
|
+
|
332
|
+
context 'when options are provided' do
|
333
|
+
subject { @static_client.query_suggestion(@static_engine_name, query, options) }
|
334
|
+
|
335
|
+
it 'should request query suggestions' do
|
336
|
+
expect(subject).to match(
|
337
|
+
'meta' => anything,
|
338
|
+
'results' => anything
|
339
|
+
)
|
340
|
+
end
|
341
|
+
end
|
342
|
+
|
343
|
+
context 'when options are omitted' do
|
344
|
+
subject { @static_client.query_suggestion(@static_engine_name, query) }
|
345
|
+
|
346
|
+
it 'should request query suggestions' do
|
347
|
+
expect(subject).to match(
|
348
|
+
'meta' => anything,
|
349
|
+
'results' => anything
|
350
|
+
)
|
351
|
+
end
|
352
|
+
end
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
327
356
|
context 'Engines' do
|
328
357
|
after do
|
329
358
|
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.5.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:
|
11
|
+
date: 2019-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
@@ -99,7 +99,7 @@ files:
|
|
99
99
|
- ".rubocop.yml"
|
100
100
|
- ".travis.yml"
|
101
101
|
- Gemfile
|
102
|
-
- LICENSE
|
102
|
+
- LICENSE
|
103
103
|
- README.md
|
104
104
|
- Rakefile
|
105
105
|
- lib/data/ca-bundle.crt
|
@@ -107,11 +107,13 @@ files:
|
|
107
107
|
- lib/swiftype-app-search/client.rb
|
108
108
|
- lib/swiftype-app-search/client/documents.rb
|
109
109
|
- lib/swiftype-app-search/client/engines.rb
|
110
|
+
- lib/swiftype-app-search/client/query_suggestion.rb
|
110
111
|
- lib/swiftype-app-search/client/search.rb
|
111
112
|
- lib/swiftype-app-search/exceptions.rb
|
112
113
|
- lib/swiftype-app-search/request.rb
|
113
114
|
- lib/swiftype-app-search/utils.rb
|
114
115
|
- lib/swiftype-app-search/version.rb
|
116
|
+
- logo-app-search.png
|
115
117
|
- script/console
|
116
118
|
- spec/client_spec.rb
|
117
119
|
- spec/config_helper.rb
|
data/LICENSE.txt
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
Copyright 2017 Swiftype, Inc.
|
2
|
-
http://swiftype.com/
|
3
|
-
|
4
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
5
|
-
a copy of this software and associated documentation files (the
|
6
|
-
"Software"), to deal in the Software without restriction, including
|
7
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
8
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
-
permit persons to whom the Software is furnished to do so, subject to
|
10
|
-
the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be
|
13
|
-
included in all copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|