search_flip 2.0.0.beta2 → 2.0.0.beta3
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/.rubocop.yml +10 -3
- data/README.md +22 -1
- data/UPDATING.md +21 -5
- data/lib/search_flip/bulk.rb +5 -2
- data/lib/search_flip/connection.rb +29 -19
- data/lib/search_flip/criteria.rb +48 -18
- data/lib/search_flip/http_client.rb +27 -26
- data/lib/search_flip/index.rb +6 -4
- data/lib/search_flip/response.rb +9 -1
- data/lib/search_flip/version.rb +1 -1
- data/search_flip.gemspec +7 -2
- data/spec/delegate_matcher.rb +32 -0
- data/spec/search_flip/aggregation_spec.rb +265 -0
- data/spec/search_flip/bulk_spec.rb +78 -0
- data/spec/search_flip/connection_spec.rb +211 -0
- data/spec/search_flip/criteria_spec.rb +1028 -0
- data/spec/search_flip/http_client_spec.rb +67 -0
- data/spec/search_flip/index_spec.rb +455 -0
- data/spec/search_flip/model_spec.rb +44 -0
- data/spec/search_flip/response_spec.rb +185 -0
- data/spec/search_flip/to_json_spec.rb +29 -0
- data/{test/test_helper.rb → spec/spec_helper.rb} +13 -76
- metadata +30 -39
- data/test/search_flip/aggregation_test.rb +0 -230
- data/test/search_flip/bulk_test.rb +0 -55
- data/test/search_flip/connection_test.rb +0 -161
- data/test/search_flip/criteria_test.rb +0 -879
- data/test/search_flip/http_client_test.rb +0 -35
- data/test/search_flip/index_test.rb +0 -451
- data/test/search_flip/model_test.rb +0 -39
- data/test/search_flip/response_test.rb +0 -137
- data/test/search_flip/to_json_test.rb +0 -30
@@ -1,55 +0,0 @@
|
|
1
|
-
|
2
|
-
require File.expand_path("../test_helper", __dir__)
|
3
|
-
|
4
|
-
class SearchFlip::BulkTest < SearchFlip::TestCase
|
5
|
-
def test_bulk
|
6
|
-
product1, product2 = create_list(:product, 2)
|
7
|
-
|
8
|
-
assert_difference "ProductIndex.total_entries", 2 do
|
9
|
-
ProductIndex.bulk do |bulk|
|
10
|
-
bulk.create product1.id, ProductIndex.serialize(product1)
|
11
|
-
bulk.create product2.id, ProductIndex.serialize(product1)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
assert_difference "ProductIndex.total_entries", -2 do
|
16
|
-
ProductIndex.bulk do |bulk|
|
17
|
-
bulk.delete product1.id
|
18
|
-
bulk.delete product2.id
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_bulk_with_options
|
24
|
-
product1, product2 = create_list(:product, 2)
|
25
|
-
|
26
|
-
ProductIndex.import [product1, product2]
|
27
|
-
|
28
|
-
assert_raises "SearchFlip::Bulk::Error" do
|
29
|
-
ProductIndex.bulk do |bulk|
|
30
|
-
bulk.create product1.id, ProductIndex.serialize(product1)
|
31
|
-
bulk.create product2.id, ProductIndex.serialize(product1)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
ProductIndex.bulk(ignore_errors: [409]) do |bulk|
|
36
|
-
bulk.create product1.id, ProductIndex.serialize(product1)
|
37
|
-
bulk.create product2.id, ProductIndex.serialize(product1)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_bulk_with_item_options
|
42
|
-
product = create(:product)
|
43
|
-
|
44
|
-
ProductIndex.bulk do |bulk|
|
45
|
-
bulk.index product.id, ProductIndex.serialize(product), version: 1, version_type: "external_gt"
|
46
|
-
end
|
47
|
-
|
48
|
-
assert_raises "SearchFlip::Bulk::Error" do
|
49
|
-
ProductIndex.bulk do |bulk|
|
50
|
-
bulk.index product.id, ProductIndex.serialize(product), version: 1, version_type: "external_gt"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
@@ -1,161 +0,0 @@
|
|
1
|
-
|
2
|
-
require File.expand_path("../test_helper", __dir__)
|
3
|
-
|
4
|
-
class SearchFlip::ConnectionTest < SearchFlip::TestCase
|
5
|
-
def test_base_url
|
6
|
-
assert_equal SearchFlip::Connection.new(base_url: "base url").base_url, "base url"
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_msearch
|
10
|
-
ProductIndex.import create(:product)
|
11
|
-
CommentIndex.import create(:comment)
|
12
|
-
|
13
|
-
responses = SearchFlip::Connection.new.msearch([ProductIndex.match_all, CommentIndex.match_all])
|
14
|
-
|
15
|
-
assert_equal 2, responses.size
|
16
|
-
assert_equal 1, responses[0].total_entries
|
17
|
-
assert_equal 1, responses[1].total_entries
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_update_aliases
|
21
|
-
connection = SearchFlip::Connection.new
|
22
|
-
|
23
|
-
assert connection.update_aliases(actions: [add: { index: "products", alias: "alias1" }])
|
24
|
-
assert connection.update_aliases(actions: [remove: { index: "products", alias: "alias1" }])
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_get_index_aliases
|
28
|
-
connection = SearchFlip::Connection.new
|
29
|
-
|
30
|
-
connection.update_aliases(actions: [
|
31
|
-
{ add: { index: "comments", alias: "alias1" } },
|
32
|
-
{ add: { index: "products", alias: "alias2" } },
|
33
|
-
{ add: { index: "products", alias: "alias3" } }
|
34
|
-
])
|
35
|
-
|
36
|
-
assert_equal connection.get_aliases.keys.sort, ["comments", "products"].sort
|
37
|
-
assert_equal connection.get_aliases["products"]["aliases"].keys, ["alias2", "alias3"]
|
38
|
-
assert_equal connection.get_aliases["comments"]["aliases"].keys, ["alias1"]
|
39
|
-
assert_equal connection.get_aliases(index_name: "products").keys, ["products"]
|
40
|
-
assert_equal connection.get_aliases(index_name: "comments,products").keys.sort, ["comments", "products"]
|
41
|
-
assert_equal connection.get_aliases(alias_name: "alias1,alias2").keys.sort, ["comments", "products"]
|
42
|
-
assert_equal connection.get_aliases(alias_name: "alias1,alias2")["products"]["aliases"].keys, ["alias2"]
|
43
|
-
ensure
|
44
|
-
connection.update_aliases(actions: [
|
45
|
-
{ remove: { index: "comments", alias: "alias1" } },
|
46
|
-
{ remove: { index: "products", alias: "alias2" } },
|
47
|
-
{ remove: { index: "products", alias: "alias3" } }
|
48
|
-
])
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_alias_exists?
|
52
|
-
connection = SearchFlip::Connection.new
|
53
|
-
|
54
|
-
refute connection.alias_exists?(:some_alias)
|
55
|
-
|
56
|
-
connection.update_aliases(actions: [add: { index: "products", alias: "some_alias" }])
|
57
|
-
|
58
|
-
assert connection.alias_exists?(:some_alias)
|
59
|
-
ensure
|
60
|
-
connection.update_aliases(actions: [remove: { index: "products", alias: "some_alias" }])
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_get_indices
|
64
|
-
connection = SearchFlip::Connection.new
|
65
|
-
|
66
|
-
assert_equal connection.get_indices.map { |index| index["index"] }.sort, ["comments", "products"]
|
67
|
-
assert_equal connection.get_indices("com*").map { |index| index["index"] }.sort, ["comments"]
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_create_index
|
71
|
-
connection = SearchFlip::Connection.new
|
72
|
-
|
73
|
-
assert connection.create_index("index_name")
|
74
|
-
assert connection.index_exists?("index_name")
|
75
|
-
ensure
|
76
|
-
connection.delete_index("index_name") if connection.index_exists?("index_name")
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_create_index_with_index_payload
|
80
|
-
connection = SearchFlip::Connection.new
|
81
|
-
|
82
|
-
connection.create_index("index_name", settings: { number_of_shards: 3 })
|
83
|
-
|
84
|
-
assert_equal connection.get_index_settings("index_name")["index_name"]["settings"]["index"]["number_of_shards"], "3"
|
85
|
-
ensure
|
86
|
-
connection.delete_index("index_name") if connection.index_exists?("index_name")
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_update_index_settings
|
90
|
-
connection = SearchFlip::Connection.new
|
91
|
-
|
92
|
-
connection.create_index("index_name")
|
93
|
-
connection.update_index_settings("index_name", settings: { number_of_replicas: 3 })
|
94
|
-
|
95
|
-
assert_equal "3", connection.get_index_settings("index_name")["index_name"]["settings"]["index"]["number_of_replicas"]
|
96
|
-
ensure
|
97
|
-
connection.delete_index("index_name") if connection.index_exists?("index_name")
|
98
|
-
end
|
99
|
-
|
100
|
-
def test_get_index_settings
|
101
|
-
connection = SearchFlip::Connection.new
|
102
|
-
|
103
|
-
connection.create_index("index_name", settings: { number_of_shards: 3 })
|
104
|
-
|
105
|
-
assert_equal connection.get_index_settings("index_name")["index_name"]["settings"]["index"]["number_of_shards"], "3"
|
106
|
-
ensure
|
107
|
-
connection.delete_index("index_name") if connection.index_exists?("index_name")
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_update_mapping
|
111
|
-
connection = SearchFlip::Connection.new
|
112
|
-
|
113
|
-
mapping = { "type_name" => { "properties" => { "id" => { "type" => "long" } } } }
|
114
|
-
|
115
|
-
connection.create_index("index_name")
|
116
|
-
connection.update_mapping("index_name", "type_name", mapping)
|
117
|
-
|
118
|
-
assert_equal connection.get_mapping("index_name", "type_name"), "index_name" => { "mappings" => mapping }
|
119
|
-
ensure
|
120
|
-
connection.delete_index("index_name") if connection.index_exists?("index_name")
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_delete_index
|
124
|
-
connection = SearchFlip::Connection.new
|
125
|
-
|
126
|
-
connection.create_index("index_name")
|
127
|
-
assert connection.index_exists?("index_name")
|
128
|
-
|
129
|
-
connection.delete_index("index_name")
|
130
|
-
refute connection.index_exists?("index_name")
|
131
|
-
ensure
|
132
|
-
connection.delete_index("index_name") if connection.index_exists?("index_name")
|
133
|
-
end
|
134
|
-
|
135
|
-
def test_refresh
|
136
|
-
connection = SearchFlip::Connection.new
|
137
|
-
|
138
|
-
connection.create_index("index1")
|
139
|
-
connection.create_index("index2")
|
140
|
-
|
141
|
-
assert connection.refresh
|
142
|
-
assert connection.refresh("index1")
|
143
|
-
assert connection.refresh(["index1", "index2"])
|
144
|
-
ensure
|
145
|
-
connection.delete_index("index1") if connection.index_exists?("index1")
|
146
|
-
connection.delete_index("index2") if connection.index_exists?("index2")
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_index_url
|
150
|
-
connection = SearchFlip::Connection.new(base_url: "base_url")
|
151
|
-
|
152
|
-
assert_equal "base_url/index_name", connection.index_url("index_name")
|
153
|
-
end
|
154
|
-
|
155
|
-
def test_type_url
|
156
|
-
connection = SearchFlip::Connection.new(base_url: "base_url")
|
157
|
-
|
158
|
-
assert_equal "base_url/index_name/type_name", connection.type_url("index_name", "type_name")
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|