meilisearch 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/meilisearch/client/indexes.rb +9 -30
- data/lib/meilisearch/client/keys.rb +1 -16
- data/lib/meilisearch/error.rb +1 -1
- data/lib/meilisearch/http_request.rb +19 -19
- data/lib/meilisearch/index.rb +3 -9
- data/lib/meilisearch/index/base.rb +3 -17
- data/lib/meilisearch/index/documents.rb +9 -10
- data/lib/meilisearch/index/settings.rb +71 -11
- data/lib/meilisearch/index/stats.rb +1 -1
- data/lib/meilisearch/index/stop_words.rb +6 -13
- data/lib/meilisearch/index/synonyms.rb +7 -39
- 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: 99ae25bab6782e438028c54d10a2966072afb86200f4ac70133a438272be9c65
|
4
|
+
data.tar.gz: 13a067ebb2af22906feb52df27b1f4a572bc72bc5fe5cbfc3a95a8ae7262c26c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e161040182a153380376f5e05a3485c7203408171413537d02a9effeb8f121661c21da6d26da7644c30f6a246628eace816107b0b58f76f2acfa6c75dbd2795
|
7
|
+
data.tar.gz: 28e13d37c04b1ac39424e60a9107215afe9379d3a56a7c10bdde5cdd183843f93b4c069c5fa5bc770e531f5cc528d3d6b8426a9de5f52f62376c68e697dcc78a
|
@@ -12,16 +12,14 @@ module MeiliSearch
|
|
12
12
|
end
|
13
13
|
|
14
14
|
# Usage:
|
15
|
-
# create_index('
|
16
|
-
# create_index(
|
17
|
-
# create_index(
|
18
|
-
# create_index(name: 'name', schema: {...})
|
19
|
-
# create_index(name: 'name', uid: 'uid', schema: {...})
|
15
|
+
# create_index('indexUID')
|
16
|
+
# create_index(uid: 'indexUID')
|
17
|
+
# create_index(uid: 'indexUID', primaryKey: 'id')
|
20
18
|
def create_index(attributes)
|
21
19
|
body = if attributes.is_a?(Hash)
|
22
20
|
attributes
|
23
21
|
else
|
24
|
-
{
|
22
|
+
{ uid: attributes }
|
25
23
|
end
|
26
24
|
res = http_post '/indexes', body
|
27
25
|
index_object(res['uid'])
|
@@ -32,13 +30,11 @@ module MeiliSearch
|
|
32
30
|
end
|
33
31
|
|
34
32
|
# Usage:
|
35
|
-
# index('
|
36
|
-
# index(uid: '
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
uid = index_uid(identifier)
|
41
|
-
raise IndexIdentifierError if uid.nil?
|
33
|
+
# index('indexUID')
|
34
|
+
# index(uid: 'indexUID')
|
35
|
+
def index(attribute)
|
36
|
+
uid = attribute.is_a?(Hash) ? attribute[:uid] : attribute
|
37
|
+
raise IndexUidError if uid.nil?
|
42
38
|
|
43
39
|
index_object(uid)
|
44
40
|
end
|
@@ -49,23 +45,6 @@ module MeiliSearch
|
|
49
45
|
def index_object(uid)
|
50
46
|
Index.new(uid, @base_url, @api_key)
|
51
47
|
end
|
52
|
-
|
53
|
-
def index_uid(identifier)
|
54
|
-
if identifier.is_a?(Hash)
|
55
|
-
identifier[:uid] || index_uid_from_name(identifier)
|
56
|
-
else
|
57
|
-
identifier
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def index_uid_from_name(identifier)
|
62
|
-
index = indexes.find { |i| i['name'] == identifier[:name] }
|
63
|
-
if index.nil?
|
64
|
-
nil
|
65
|
-
else
|
66
|
-
index['uid']
|
67
|
-
end
|
68
|
-
end
|
69
48
|
end
|
70
49
|
end
|
71
50
|
end
|
@@ -6,22 +6,7 @@ module MeiliSearch
|
|
6
6
|
def keys
|
7
7
|
http_get '/keys'
|
8
8
|
end
|
9
|
-
|
10
|
-
def key(key)
|
11
|
-
http_get "/keys/#{key}"
|
12
|
-
end
|
13
|
-
|
14
|
-
def create_key(options = {})
|
15
|
-
http_post '/keys', options
|
16
|
-
end
|
17
|
-
|
18
|
-
def update_key(key, options = {})
|
19
|
-
http_put "/keys/#{key}", options
|
20
|
-
end
|
21
|
-
|
22
|
-
def delete_key(key)
|
23
|
-
http_delete "/keys/#{key}"
|
24
|
-
end
|
9
|
+
alias get_keys keys
|
25
10
|
end
|
26
11
|
end
|
27
12
|
end
|
data/lib/meilisearch/error.rb
CHANGED
@@ -26,38 +26,38 @@ module MeiliSearch
|
|
26
26
|
validate(response)
|
27
27
|
end
|
28
28
|
|
29
|
-
def http_post(path = '', body = nil)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
timeout: 1
|
42
|
-
)
|
43
|
-
end
|
29
|
+
def http_post(path = '', body = nil, params = nil)
|
30
|
+
body = body.to_json unless body.nil?
|
31
|
+
params = {
|
32
|
+
body: body,
|
33
|
+
query: params,
|
34
|
+
headers: @headers,
|
35
|
+
timeout: 1
|
36
|
+
}.compact
|
37
|
+
response = self.class.post(
|
38
|
+
@base_url + path,
|
39
|
+
params
|
40
|
+
)
|
44
41
|
validate(response)
|
45
42
|
end
|
46
43
|
|
47
|
-
def http_put(path = '', body =
|
44
|
+
def http_put(path = '', body = nil, params = nil)
|
45
|
+
body = body.to_json unless body.nil?
|
48
46
|
response = self.class.put(
|
49
47
|
@base_url + path,
|
50
|
-
body: body
|
48
|
+
body: body,
|
49
|
+
query: params,
|
51
50
|
headers: @headers,
|
52
51
|
timeout: 1
|
53
52
|
)
|
54
53
|
validate(response)
|
55
54
|
end
|
56
55
|
|
57
|
-
def http_patch(path = '', body =
|
56
|
+
def http_patch(path = '', body = nil)
|
57
|
+
body = body.to_json unless body.nil?
|
58
58
|
response = self.class.patch(
|
59
59
|
@base_url + path,
|
60
|
-
body: body
|
60
|
+
body: body,
|
61
61
|
headers: @headers,
|
62
62
|
timeout: 1
|
63
63
|
)
|
data/lib/meilisearch/index.rb
CHANGED
@@ -28,15 +28,9 @@ module MeiliSearch
|
|
28
28
|
super(url, api_key)
|
29
29
|
end
|
30
30
|
|
31
|
-
def
|
32
|
-
|
33
|
-
end
|
34
|
-
alias get_name name
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
def index_name_from_uid
|
39
|
-
show['name']
|
31
|
+
def primary_key
|
32
|
+
show['primaryKey']
|
40
33
|
end
|
34
|
+
alias get_primary_key primary_key
|
41
35
|
end
|
42
36
|
end
|
@@ -8,24 +8,10 @@ module MeiliSearch
|
|
8
8
|
end
|
9
9
|
alias show_index show
|
10
10
|
|
11
|
-
def
|
12
|
-
|
13
|
-
rescue HTTPError => e
|
14
|
-
raise if e.body_message != 'missing index schema'
|
15
|
-
|
16
|
-
nil
|
17
|
-
end
|
18
|
-
alias get_schema schema
|
19
|
-
|
20
|
-
def update_name(new_index_name)
|
21
|
-
http_put "/indexes/#{@uid}", name: new_index_name
|
22
|
-
end
|
23
|
-
alias update_index_name update_name
|
24
|
-
|
25
|
-
def update_schema(new_schema)
|
26
|
-
http_put "/indexes/#{@uid}/schema", new_schema
|
11
|
+
def update(body)
|
12
|
+
http_put "/indexes/#{@uid}", body
|
27
13
|
end
|
28
|
-
alias
|
14
|
+
alias update_index update
|
29
15
|
|
30
16
|
def delete
|
31
17
|
http_delete "/indexes/#{@uid}"
|
@@ -15,27 +15,22 @@ module MeiliSearch
|
|
15
15
|
end
|
16
16
|
alias get_documents documents
|
17
17
|
|
18
|
-
def add_documents(documents)
|
18
|
+
def add_documents(documents, primary_key = nil)
|
19
19
|
documents = [documents] if documents.is_a?(Hash)
|
20
|
-
http_post "/indexes/#{@uid}/documents", documents
|
20
|
+
http_post "/indexes/#{@uid}/documents", documents, primaryKey: primary_key
|
21
21
|
end
|
22
22
|
alias replace_documents add_documents
|
23
23
|
alias add_or_replace_documents add_documents
|
24
24
|
|
25
|
-
def update_documents(documents)
|
25
|
+
def update_documents(documents, primary_key = nil)
|
26
26
|
documents = [documents] if documents.is_a?(Hash)
|
27
|
-
http_put "/indexes/#{@uid}/documents", documents
|
27
|
+
http_put "/indexes/#{@uid}/documents", documents, primaryKey: primary_key
|
28
28
|
end
|
29
29
|
alias add_or_update_documents update_documents
|
30
30
|
|
31
|
-
def clear_documents
|
32
|
-
http_delete "/indexes/#{@uid}/documents"
|
33
|
-
end
|
34
|
-
alias clear_all_documents clear_documents
|
35
|
-
|
36
31
|
def delete_documents(documents_ids)
|
37
32
|
if documents_ids.is_a?(Array)
|
38
|
-
http_post "/indexes/#{@uid}/documents/delete", documents_ids
|
33
|
+
http_post "/indexes/#{@uid}/documents/delete-batch", documents_ids
|
39
34
|
else
|
40
35
|
delete_document(documents_ids)
|
41
36
|
end
|
@@ -47,6 +42,10 @@ module MeiliSearch
|
|
47
42
|
http_delete "/indexes/#{@uid}/documents/#{encode_document}"
|
48
43
|
end
|
49
44
|
alias delete_one_document delete_document
|
45
|
+
|
46
|
+
def delete_all_documents
|
47
|
+
http_delete "/indexes/#{@uid}/documents"
|
48
|
+
end
|
50
49
|
end
|
51
50
|
end
|
52
51
|
end
|
@@ -3,24 +3,84 @@
|
|
3
3
|
module MeiliSearch
|
4
4
|
class Index < HTTPRequest
|
5
5
|
module Settings
|
6
|
+
# General routes
|
6
7
|
def settings
|
7
8
|
http_get "/indexes/#{@uid}/settings"
|
8
9
|
end
|
9
10
|
alias get_settings settings
|
10
11
|
|
11
|
-
def
|
12
|
-
http_post "/indexes/#{@uid}/settings",
|
12
|
+
def update_settings(settings)
|
13
|
+
http_post "/indexes/#{@uid}/settings", settings
|
13
14
|
end
|
14
|
-
alias add_settings add_or_replace_settings
|
15
|
-
alias replace_settings add_or_replace_settings
|
16
15
|
|
17
|
-
def
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
16
|
+
def reset_settings
|
17
|
+
http_delete "/indexes/#{@uid}/settings"
|
18
|
+
end
|
19
|
+
|
20
|
+
# Sub-routes ranking rules
|
21
|
+
def ranking_rules
|
22
|
+
http_get "/indexes/#{@uid}/settings/ranking-rules"
|
23
|
+
end
|
24
|
+
alias get_ranking_rules ranking_rules
|
25
|
+
|
26
|
+
def update_ranking_rules(ranking_rules)
|
27
|
+
http_post "/indexes/#{@uid}/settings/ranking-rules", ranking_rules
|
28
|
+
end
|
29
|
+
|
30
|
+
def reset_ranking_rules
|
31
|
+
http_delete "/indexes/#{@uid}/settings/ranking-rules"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Sub-routes distinct attribute
|
35
|
+
def distinct_attribute
|
36
|
+
http_get "/indexes/#{@uid}/settings/distinct-attribute"
|
37
|
+
end
|
38
|
+
alias get_distinct_attribute distinct_attribute
|
39
|
+
|
40
|
+
def update_distinct_attribute(distinct_attribute)
|
41
|
+
http_post "/indexes/#{@uid}/settings/distinct-attribute", distinct_attribute
|
42
|
+
end
|
43
|
+
|
44
|
+
def reset_distinct_attribute
|
45
|
+
http_delete "/indexes/#{@uid}/settings/distinct-attribute"
|
46
|
+
end
|
47
|
+
|
48
|
+
# Sub-routes searchable attributes
|
49
|
+
def searchable_attributes
|
50
|
+
http_get "/indexes/#{@uid}/settings/searchable-attributes"
|
51
|
+
end
|
52
|
+
alias get_searchable_attributes searchable_attributes
|
53
|
+
|
54
|
+
def update_searchable_attributes(searchable_attributes)
|
55
|
+
http_post "/indexes/#{@uid}/settings/searchable-attributes", searchable_attributes
|
56
|
+
end
|
57
|
+
|
58
|
+
def reset_searchable_attributes
|
59
|
+
http_delete "/indexes/#{@uid}/settings/searchable-attributes"
|
60
|
+
end
|
61
|
+
|
62
|
+
# Sub-routes displayed attributes
|
63
|
+
def displayed_attributes
|
64
|
+
http_get "/indexes/#{@uid}/settings/displayed-attributes"
|
65
|
+
end
|
66
|
+
alias get_displayed_attributes displayed_attributes
|
67
|
+
|
68
|
+
def update_displayed_attributes(displayed_attributes)
|
69
|
+
http_post "/indexes/#{@uid}/settings/displayed-attributes", displayed_attributes
|
70
|
+
end
|
71
|
+
|
72
|
+
def reset_displayed_attributes
|
73
|
+
http_delete "/indexes/#{@uid}/settings/displayed-attributes"
|
74
|
+
end
|
75
|
+
|
76
|
+
# Sub-routes accept-new-fields
|
77
|
+
def accept_new_fields
|
78
|
+
http_get "/indexes/#{@uid}/settings/accept-new-fields"
|
79
|
+
end
|
80
|
+
alias get_accept_new_fields accept_new_fields
|
81
|
+
|
82
|
+
def update_accept_new_fields(accept_new_fields)
|
83
|
+
http_post "/indexes/#{@uid}/settings/accept-new-fields", accept_new_fields
|
24
84
|
end
|
25
85
|
end
|
26
86
|
end
|
@@ -4,24 +4,17 @@ module MeiliSearch
|
|
4
4
|
class Index < HTTPRequest
|
5
5
|
module StopWords
|
6
6
|
def stop_words
|
7
|
-
http_get "/indexes/#{@uid}/stop-words"
|
7
|
+
http_get "/indexes/#{@uid}/settings/stop-words"
|
8
8
|
end
|
9
9
|
alias get_stop_words stop_words
|
10
10
|
|
11
|
-
def
|
12
|
-
|
13
|
-
|
14
|
-
else
|
15
|
-
http_patch "/indexes/#{@uid}/stop-words", [stop_words]
|
16
|
-
end
|
11
|
+
def update_stop_words(stop_words)
|
12
|
+
body = stop_words.is_a?(Array) ? stop_words : [stop_words]
|
13
|
+
http_post "/indexes/#{@uid}/settings/stop-words", body
|
17
14
|
end
|
18
15
|
|
19
|
-
def
|
20
|
-
|
21
|
-
http_post "/indexes/#{@uid}/stop-words", stop_words
|
22
|
-
else
|
23
|
-
http_post "/indexes/#{@uid}/stop-words", [stop_words]
|
24
|
-
end
|
16
|
+
def reset_stop_words
|
17
|
+
http_delete "/indexes/#{@uid}/settings/stop-words"
|
25
18
|
end
|
26
19
|
end
|
27
20
|
end
|
@@ -3,50 +3,18 @@
|
|
3
3
|
module MeiliSearch
|
4
4
|
class Index < HTTPRequest
|
5
5
|
module Synonyms
|
6
|
-
def
|
7
|
-
|
8
|
-
http_get "/indexes/#{@uid}/synonyms/#{encode_synonym}"
|
6
|
+
def synonyms
|
7
|
+
http_get "/indexes/#{@uid}/settings/synonyms"
|
9
8
|
end
|
10
|
-
alias
|
11
|
-
alias get_synonyms_of synonyms_of
|
9
|
+
alias get_synonyms synonyms
|
12
10
|
|
13
|
-
def
|
14
|
-
|
11
|
+
def update_synonyms(synonyms)
|
12
|
+
http_post "/indexes/#{@uid}/settings/synonyms", synonyms
|
15
13
|
end
|
16
|
-
alias get_all_synonyms all_synonyms
|
17
|
-
alias get_all_sequences all_synonyms
|
18
14
|
|
19
|
-
def
|
20
|
-
|
15
|
+
def reset_synonyms
|
16
|
+
http_delete "/indexes/#{@uid}/settings/synonyms"
|
21
17
|
end
|
22
|
-
|
23
|
-
def add_synonyms_one_way(input, synonyms)
|
24
|
-
add_synonyms(input: input, synonyms: synonyms)
|
25
|
-
end
|
26
|
-
|
27
|
-
def add_synonyms_multi_way(synonyms)
|
28
|
-
add_synonyms(synonyms: synonyms)
|
29
|
-
end
|
30
|
-
|
31
|
-
def update_synonym(synonym, new_synonyms)
|
32
|
-
encode_synonym = URI.encode_www_form_component(synonym)
|
33
|
-
http_put "/indexes/#{@uid}/synonyms/#{encode_synonym}", new_synonyms
|
34
|
-
end
|
35
|
-
|
36
|
-
def delete_synonym(synonym)
|
37
|
-
encode_synonym = URI.encode_www_form_component(synonym)
|
38
|
-
http_delete "/indexes/#{@uid}/synonyms/#{encode_synonym}"
|
39
|
-
end
|
40
|
-
alias delete_one_synonym delete_synonym
|
41
|
-
|
42
|
-
def batch_write_synonyms(synonyms)
|
43
|
-
http_post "/indexes/#{@uid}/synonyms/batch", synonyms
|
44
|
-
end
|
45
|
-
|
46
|
-
def clear_synonyms
|
47
|
-
http_delete "/indexes/#{@uid}/synonyms"
|
48
|
-
end
|
49
|
-
alias clear_all_synonyms clear_synonyms
|
50
18
|
end
|
51
19
|
end
|
52
20
|
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.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Meili
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|