solrb 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/README.md +15 -0
- data/lib/solr/query/request.rb +1 -0
- data/lib/solr/query/request/edismax_adapter.rb +1 -5
- data/lib/solr/query/request/sorting/field.rb +12 -0
- data/lib/solr/query/request/sorting/function.rb +20 -0
- data/lib/solr/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f60f6a0571ce8fd909c4fd286f93ff5f57b6874597bc5980207eb97f6d43438f
|
4
|
+
data.tar.gz: df632f68830e1ffb178fd5dfcc757e8f2a11a397fdc3f49c8da112d0e076543b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a363f5c19f5cbb71cdbd24bb1387f93c7c9b7003fb1dac1f1dd0d538052fe2f7f5de333ae4f8208d2533acbc53d92ee38e2d4ad975022ae6456f04c33b9cf01d
|
7
|
+
data.tar.gz: b3fd3713b0f78420ee9491bbc2ea930b3aed58885af7623cf7475efe703d477f200e903282473088bb78014fa98d6ad897c7a028a7b422016fd264bd582c3694
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.5.
|
1
|
+
2.5.3
|
data/README.md
CHANGED
@@ -219,6 +219,21 @@ end
|
|
219
219
|
request.run(page: 1, page_size: 10)
|
220
220
|
```
|
221
221
|
|
222
|
+
Default sorting logic is following: nulls last, not-nulls first.
|
223
|
+
|
224
|
+
```ruby
|
225
|
+
fields = [
|
226
|
+
Solr::Query::Request::FieldWithBoost.new(field: :name)
|
227
|
+
]
|
228
|
+
sort_fields = [
|
229
|
+
Solr::Query::Request::Sorting::Field.new(name: :is_featured, direction: :desc),
|
230
|
+
Solr::Query::Request::Sorting::Function.new(function: "score desc")
|
231
|
+
]
|
232
|
+
request = Solr::Query::Request.new(search_term: 'term', fields: fields)
|
233
|
+
request.sorting = Solr::Query::Request::Sorting.new(fields: sort_fields)
|
234
|
+
request.run(page: 1, page_size: 10)
|
235
|
+
```
|
236
|
+
|
222
237
|
## Query with grouping
|
223
238
|
|
224
239
|
```ruby
|
data/lib/solr/query/request.rb
CHANGED
@@ -8,6 +8,7 @@ require 'solr/query/request/grouping'
|
|
8
8
|
require 'solr/query/request/boosting'
|
9
9
|
require 'solr/query/request/spellcheck'
|
10
10
|
require 'solr/query/request/sorting/field'
|
11
|
+
require 'solr/query/request/sorting/function'
|
11
12
|
require 'solr/query/request/field_with_boost'
|
12
13
|
require 'solr/query/request/or_filter'
|
13
14
|
require 'solr/query/request/and_filter'
|
@@ -115,11 +115,7 @@ module Solr
|
|
115
115
|
|
116
116
|
def add_sorting(solr_params)
|
117
117
|
return solr_params if request.sorting.empty?
|
118
|
-
|
119
|
-
solr_sorting = request.sorting.fields.map do |sort_field|
|
120
|
-
solr_field = solarize_field(sort_field.name)
|
121
|
-
"exists(#{solr_field}) desc, #{solr_field} #{sort_field.direction}"
|
122
|
-
end
|
118
|
+
solr_sorting = request.sorting.fields.map(&:to_solr_s).join(', ')
|
123
119
|
solr_params.merge(sort: solr_sorting)
|
124
120
|
end
|
125
121
|
|
@@ -3,12 +3,24 @@ module Solr
|
|
3
3
|
class Request
|
4
4
|
class Sorting
|
5
5
|
class Field
|
6
|
+
include Solr::Support::SchemaHelper
|
7
|
+
|
6
8
|
attr_reader :name, :direction
|
9
|
+
|
7
10
|
def initialize(name:, direction:)
|
8
11
|
@name = name
|
9
12
|
@direction = direction
|
10
13
|
freeze
|
11
14
|
end
|
15
|
+
|
16
|
+
# sorting nulls last, not-nulls first
|
17
|
+
def to_solr_s
|
18
|
+
"exists(#{solr_field}) desc, #{solr_field} #{direction}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def solr_field
|
22
|
+
solarize_field(name)
|
23
|
+
end
|
12
24
|
end
|
13
25
|
end
|
14
26
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Solr
|
2
|
+
module Query
|
3
|
+
class Request
|
4
|
+
class Sorting
|
5
|
+
class Function
|
6
|
+
attr_reader :function
|
7
|
+
|
8
|
+
def initialize(function:)
|
9
|
+
@function = function
|
10
|
+
freeze
|
11
|
+
end
|
12
|
+
|
13
|
+
def to_solr_s
|
14
|
+
function
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/solr/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adriano Luz
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-
|
13
|
+
date: 2018-11-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: addressable
|
@@ -217,6 +217,7 @@ files:
|
|
217
217
|
- lib/solr/query/request/runner.rb
|
218
218
|
- lib/solr/query/request/sorting.rb
|
219
219
|
- lib/solr/query/request/sorting/field.rb
|
220
|
+
- lib/solr/query/request/sorting/function.rb
|
220
221
|
- lib/solr/query/request/spellcheck.rb
|
221
222
|
- lib/solr/query/response.rb
|
222
223
|
- lib/solr/query/response/facet_value.rb
|