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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71788f83e115a345f449b9acb74eee56c3eb539a0b0a479277f1802616bec583
4
- data.tar.gz: b531dfec715fd83ea33ee2bf38591e2beddd672463e78b136534dbbc0f14c2a3
3
+ metadata.gz: f60f6a0571ce8fd909c4fd286f93ff5f57b6874597bc5980207eb97f6d43438f
4
+ data.tar.gz: df632f68830e1ffb178fd5dfcc757e8f2a11a397fdc3f49c8da112d0e076543b
5
5
  SHA512:
6
- metadata.gz: bb11372f134addee39b1fa7cb33ab9731aa1dee95658ba6e00697c199f085a358ed488b3238e56867bd00f90aa11d8e73b77a28137f18cde9010bbda4b5fbe0a
7
- data.tar.gz: 6f209b29887ecb55dd7e90cc96ebca989ba322fb6694a08e14464079a26df49a07330cad34312f75d0656d728ce2c9a46afd6aa64518a09efe92e3336fc1c620
6
+ metadata.gz: a363f5c19f5cbb71cdbd24bb1387f93c7c9b7003fb1dac1f1dd0d538052fe2f7f5de333ae4f8208d2533acbc53d92ee38e2d4ad975022ae6456f04c33b9cf01d
7
+ data.tar.gz: b3fd3713b0f78420ee9491bbc2ea930b3aed58885af7623cf7475efe703d477f200e903282473088bb78014fa98d6ad897c7a028a7b422016fd264bd582c3694
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.1
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
@@ -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
- # sorting nulls last, not-nulls first
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
@@ -1,3 +1,3 @@
1
1
  module Solr
2
- VERSION = '0.1.7'.freeze
2
+ VERSION = '0.1.8'.freeze
3
3
  end
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.7
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-10-05 00:00:00.000000000 Z
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