solrb 0.1.7 → 0.1.8
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/.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
|