elasticated 2.3.0 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/elasticated/query.rb +12 -5
- data/lib/version.rb +5 -1
- data/spec/query_spec.rb +20 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c21bce40f279a26bfc18215caed1f0e2869584d
|
4
|
+
data.tar.gz: b6b33eabf8cb3ea40a848b4ba012201c630c6b2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f6b73bf87e1c6da918a9dcbe88ddec3f7cc2a0fa1dbe49133c3170908f58ecf095a197082846506b5dc8e23ef3be5cfd5be7f4a86bbf48f9196f98d6f3d2fd6
|
7
|
+
data.tar.gz: 51fdff057ce01cce2113d448c7426ec89fb0304e76b7fe646f28071730118b17b5805e1779b0843f153200bcf24d9e0a54e0fc68973a3c8aeba548a2580e765e
|
data/lib/elasticated/query.rb
CHANGED
@@ -53,16 +53,23 @@ module Elasticated
|
|
53
53
|
end
|
54
54
|
alias_method :offset, :from
|
55
55
|
|
56
|
-
def
|
56
|
+
def custom_sort(custom_hash)
|
57
57
|
self._sort ||= Array.new
|
58
|
-
_sort <<
|
58
|
+
_sort << custom_hash
|
59
59
|
self
|
60
60
|
end
|
61
61
|
|
62
|
+
def sort(field, method=nil)
|
63
|
+
custom_sort(field => { order: method || :asc })
|
64
|
+
end
|
65
|
+
alias_method :sort_by_field, :sort
|
66
|
+
|
67
|
+
def sort_by_script(script_hash)
|
68
|
+
custom_sort(_script: script_hash)
|
69
|
+
end
|
70
|
+
|
62
71
|
def sort_randomly
|
63
|
-
|
64
|
-
_sort << { _script: { script: "Math.random()", type: "number" } }
|
65
|
-
self
|
72
|
+
sort_by_script(script: "Math.random()", type: "number")
|
66
73
|
end
|
67
74
|
|
68
75
|
def source(*fields_array)
|
data/lib/version.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
module Elasticated
|
2
|
-
VERSION = '2.
|
2
|
+
VERSION = '2.4.0'
|
3
3
|
end
|
4
4
|
|
5
5
|
# Changelog
|
6
6
|
|
7
|
+
# 2.4.0
|
8
|
+
# Ahora se puede ordenar un search por un campo, script o hash custom
|
9
|
+
|
10
|
+
# 2.3.0
|
7
11
|
# Ahora DateFieldDelimiter admite multiples fechas declaradas en un TermsCondition
|
8
12
|
|
9
13
|
# 2.2.0
|
data/spec/query_spec.rb
CHANGED
@@ -67,6 +67,16 @@ module Elasticated
|
|
67
67
|
|
68
68
|
describe "the build method (over other fields)" do
|
69
69
|
|
70
|
+
it "should build a 'match_all' query sorted by a custom hash" do
|
71
|
+
my_custom_hash = { any_key: 'any_value' }
|
72
|
+
q.custom_sort(my_custom_hash)
|
73
|
+
expected_result = {
|
74
|
+
query: { match_all: {} },
|
75
|
+
sort: [my_custom_hash]
|
76
|
+
}
|
77
|
+
expect(q.build).to eq expected_result
|
78
|
+
end
|
79
|
+
|
70
80
|
it "should build a 'match_all' query sorted by a single field" do
|
71
81
|
q.sort :field
|
72
82
|
expected_result = {
|
@@ -94,6 +104,16 @@ module Elasticated
|
|
94
104
|
expect(q.build).to eq expected_result
|
95
105
|
end
|
96
106
|
|
107
|
+
it "should build a 'match_all' query sorted by a custom script" do
|
108
|
+
my_script_hash = { script: "my_script", type: "my_type" }
|
109
|
+
q.sort_by_script(my_script_hash)
|
110
|
+
expected_result = {
|
111
|
+
query: { match_all: {} },
|
112
|
+
sort: [ { _script: my_script_hash } ]
|
113
|
+
}
|
114
|
+
expect(q.build).to eq expected_result
|
115
|
+
end
|
116
|
+
|
97
117
|
it "should build a 'match_all' query sorted randomly" do
|
98
118
|
q.sort_randomly
|
99
119
|
expected_result = {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elasticated
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pablo Fernandez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|