meilisearch 0.25.0 → 0.26.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 +77 -1
- data/lib/meilisearch/error.rb +9 -6
- data/lib/meilisearch/index.rb +56 -0
- data/lib/meilisearch/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e182244659129f40ceff661d8e117af391a68aa1cf5fed79f198fc715863ba4e
|
4
|
+
data.tar.gz: 17f9fd0b3b529829f1bd3d4d39cb3444532ec2cc14b0aebaeac00bae6f217d9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6aefe0097ef3f3c1785f1498ade5508ac77fca3e5aef025931d7ec34e12462419721cd2b7a1ee9d8c5037a36fa0dedd3aeabb35b473a400e05b9880401495149
|
7
|
+
data.tar.gz: 5b9949303254ca87e378904dadbbf0f7fc77a113cbda175dfb7bb950b674ed09742d411c0fb45cbc3a5626c6c16ebd1549e402b76504016b1e9567e28ba4e084
|
data/README.md
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
**Meilisearch** is an open-source search engine. [Learn more about Meilisearch.](https://github.com/meilisearch/meilisearch)
|
32
32
|
|
33
|
-
## Table of Contents <!-- omit in
|
33
|
+
## Table of Contents <!-- omit in TOC -->
|
34
34
|
|
35
35
|
- [📖 Documentation](#-documentation)
|
36
36
|
- [⚡ Supercharge your Meilisearch experience](#-supercharge-your-meilisearch-experience)
|
@@ -207,6 +207,82 @@ JSON output:
|
|
207
207
|
}
|
208
208
|
```
|
209
209
|
|
210
|
+
#### Display ranking details at search
|
211
|
+
|
212
|
+
JSON output:
|
213
|
+
|
214
|
+
```json
|
215
|
+
{
|
216
|
+
"hits": [
|
217
|
+
{
|
218
|
+
"id": 15359,
|
219
|
+
"title": "Wonder Woman",
|
220
|
+
"_rankingScoreDetails": {
|
221
|
+
"words": {
|
222
|
+
"order": 0,
|
223
|
+
"matchingWords": 2,
|
224
|
+
"maxMatchingWords": 2,
|
225
|
+
"score": 1.0
|
226
|
+
},
|
227
|
+
"typo": {
|
228
|
+
"order": 1,
|
229
|
+
"typoCount": 0,
|
230
|
+
"maxTypoCount": 2,
|
231
|
+
"score": 1.0
|
232
|
+
},
|
233
|
+
"proximity": {
|
234
|
+
"order": 2,
|
235
|
+
"score": 1.0
|
236
|
+
},
|
237
|
+
"attribute": {
|
238
|
+
"order": 3,
|
239
|
+
"attributeRankingOrderScore": 0.8181818181818182,
|
240
|
+
"queryWordDistanceScore": 1.0,
|
241
|
+
"score": 0.8181818181818182
|
242
|
+
},
|
243
|
+
"exactness": {
|
244
|
+
"order": 4,
|
245
|
+
"matchType": "exactMatch",
|
246
|
+
"score": 1.0
|
247
|
+
}
|
248
|
+
}
|
249
|
+
}
|
250
|
+
]
|
251
|
+
}
|
252
|
+
```
|
253
|
+
|
254
|
+
You can enable it by querying PATCH /experimental-features with { "scoreDetails": true }
|
255
|
+
|
256
|
+
This feature is only available with Meilisearch v1.3 and newer (optional).
|
257
|
+
|
258
|
+
#### Custom Search With attributes on at search time <!-- omit in toc -->
|
259
|
+
|
260
|
+
[Customize attributes to search on at search time](https://www.meilisearch.com/docs/reference/api/search#customize-attributes-to-search-on-at-search-time).
|
261
|
+
|
262
|
+
you can perform the search :
|
263
|
+
|
264
|
+
```ruby
|
265
|
+
index.search('wonder', { attributes_to_search_on: ['genres'] })
|
266
|
+
```
|
267
|
+
|
268
|
+
|
269
|
+
JSON output:
|
270
|
+
|
271
|
+
```json
|
272
|
+
{
|
273
|
+
"hits":[],
|
274
|
+
"query":"wonder",
|
275
|
+
"processingTimeMs":0,
|
276
|
+
"limit":20,
|
277
|
+
"offset":0,
|
278
|
+
"estimatedTotalHits":0,
|
279
|
+
"nbHits":0
|
280
|
+
}
|
281
|
+
```
|
282
|
+
|
283
|
+
This feature is only available with Meilisearch v1.3 and newer (optional).
|
284
|
+
|
285
|
+
|
210
286
|
## 🤖 Compatibility with Meilisearch
|
211
287
|
|
212
288
|
This package guarantees compatibility with [version v1.x of Meilisearch](https://github.com/meilisearch/meilisearch/releases/latest), but some features may not be present. Please check the [issues](https://github.com/meilisearch/meilisearch-ruby/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22+label%3Aenhancement) for more info.
|
data/lib/meilisearch/error.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module MeiliSearch
|
4
|
-
class
|
4
|
+
class Error < StandardError
|
5
|
+
end
|
6
|
+
|
7
|
+
class ApiError < Error
|
5
8
|
# :http_code # e.g. 400, 404...
|
6
9
|
# :http_message # e.g. Bad Request, Not Found...
|
7
10
|
# :http_body # The response body received from the MeiliSearch API
|
@@ -45,7 +48,7 @@ module MeiliSearch
|
|
45
48
|
end
|
46
49
|
end
|
47
50
|
|
48
|
-
class CommunicationError <
|
51
|
+
class CommunicationError < Error
|
49
52
|
attr_reader :message
|
50
53
|
|
51
54
|
def initialize(message)
|
@@ -54,7 +57,7 @@ module MeiliSearch
|
|
54
57
|
end
|
55
58
|
end
|
56
59
|
|
57
|
-
class TimeoutError <
|
60
|
+
class TimeoutError < Error
|
58
61
|
attr_reader :message
|
59
62
|
|
60
63
|
def initialize(message = nil)
|
@@ -64,8 +67,8 @@ module MeiliSearch
|
|
64
67
|
end
|
65
68
|
|
66
69
|
module TenantToken
|
67
|
-
class ExpireOrInvalidSignature <
|
68
|
-
class InvalidApiKey <
|
69
|
-
class InvalidSearchRules <
|
70
|
+
class ExpireOrInvalidSignature < MeiliSearch::Error; end
|
71
|
+
class InvalidApiKey < MeiliSearch::Error; end
|
72
|
+
class InvalidSearchRules < MeiliSearch::Error; end
|
70
73
|
end
|
71
74
|
end
|
data/lib/meilisearch/index.rb
CHANGED
@@ -220,6 +220,9 @@ module MeiliSearch
|
|
220
220
|
|
221
221
|
### SEARCH
|
222
222
|
|
223
|
+
# options: A Hash
|
224
|
+
# show_ranking_score - To see the ranking scores for returned documents
|
225
|
+
# attributes_to_search_on - Customize attributes to search on at search time.
|
223
226
|
def search(query, options = {})
|
224
227
|
attributes = { q: query.to_s }.merge(options.compact)
|
225
228
|
|
@@ -231,6 +234,15 @@ module MeiliSearch
|
|
231
234
|
response
|
232
235
|
end
|
233
236
|
|
237
|
+
### FACET SEARCH
|
238
|
+
|
239
|
+
def facet_search(name, query = '', **options)
|
240
|
+
options.merge!(facet_name: name, facet_query: query)
|
241
|
+
options = Utils.transform_attributes(options)
|
242
|
+
|
243
|
+
http_post("/indexes/#{@uid}/facet-search", options)
|
244
|
+
end
|
245
|
+
|
234
246
|
### TASKS
|
235
247
|
|
236
248
|
def task_endpoint
|
@@ -458,5 +470,49 @@ module MeiliSearch
|
|
458
470
|
def reset_faceting
|
459
471
|
http_delete("/indexes/#{@uid}/settings/faceting")
|
460
472
|
end
|
473
|
+
|
474
|
+
### SETTINGS - DICTIONARY
|
475
|
+
|
476
|
+
def dictionary
|
477
|
+
http_get("/indexes/#{@uid}/settings/dictionary")
|
478
|
+
end
|
479
|
+
|
480
|
+
def update_dictionary(dictionary_attributes)
|
481
|
+
attributes = Utils.transform_attributes(dictionary_attributes)
|
482
|
+
http_put("/indexes/#{@uid}/settings/dictionary", attributes)
|
483
|
+
end
|
484
|
+
|
485
|
+
def reset_dictionary
|
486
|
+
http_delete("/indexes/#{@uid}/settings/dictionary")
|
487
|
+
end
|
488
|
+
### SETTINGS - SEPARATOR TOKENS
|
489
|
+
|
490
|
+
def separator_tokens
|
491
|
+
http_get("/indexes/#{@uid}/settings/separator-tokens")
|
492
|
+
end
|
493
|
+
|
494
|
+
def update_separator_tokens(separator_tokens_attributes)
|
495
|
+
attributes = Utils.transform_attributes(separator_tokens_attributes)
|
496
|
+
http_put("/indexes/#{@uid}/settings/separator-tokens", attributes)
|
497
|
+
end
|
498
|
+
|
499
|
+
def reset_separator_tokens
|
500
|
+
http_delete("/indexes/#{@uid}/settings/separator-tokens")
|
501
|
+
end
|
502
|
+
|
503
|
+
### SETTINGS - NON SEPARATOR TOKENS
|
504
|
+
|
505
|
+
def non_separator_tokens
|
506
|
+
http_get("/indexes/#{@uid}/settings/non-separator-tokens")
|
507
|
+
end
|
508
|
+
|
509
|
+
def update_non_separator_tokens(non_separator_tokens_attributes)
|
510
|
+
attributes = Utils.transform_attributes(non_separator_tokens_attributes)
|
511
|
+
http_put("/indexes/#{@uid}/settings/non-separator-tokens", attributes)
|
512
|
+
end
|
513
|
+
|
514
|
+
def reset_non_separator_tokens
|
515
|
+
http_delete("/indexes/#{@uid}/settings/non-separator-tokens")
|
516
|
+
end
|
461
517
|
end
|
462
518
|
end
|
data/lib/meilisearch/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meilisearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.26.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Meili
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|