solr_lite 0.0.11 → 0.0.12
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/lib/facet_field.rb +3 -1
- data/lib/filter_query.rb +21 -3
- data/lib/search_params.rb +4 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7b1785dbc649686a2b6865b3db5a53bb5d6edb47be43e0bc96f59f9914ca34a5
|
|
4
|
+
data.tar.gz: 7663f28bd72f9d5e29c191bdc9cc7294b39e3fa52978a1383729d9cac40496ba
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 853884d279a914c89433a45347c6df818411387da00e981ddf10ad7f63dfc6923e58073f9f481e0b348a24f185a1798896a256743232b7b60b5c26b957e801d8
|
|
7
|
+
data.tar.gz: 98ee2842be1b527a1d9073e72cc4a03d1dc4a1eac6cbbd3c00cddf0812b84decf574b64a87e5c45c351e80fc93d5e900e7a3ac60a174c906fd62450c2fb29a45
|
data/lib/facet_field.rb
CHANGED
|
@@ -14,7 +14,8 @@ module SolrLite
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
attr_accessor :name, :title, :values,
|
|
17
|
-
:range, :range_start, :range_end, :range_gap
|
|
17
|
+
:range, :range_start, :range_end, :range_gap,
|
|
18
|
+
:limit
|
|
18
19
|
|
|
19
20
|
def initialize(name, display_value)
|
|
20
21
|
@name = name # field name in Solr
|
|
@@ -25,6 +26,7 @@ module SolrLite
|
|
|
25
26
|
@range_start = nil
|
|
26
27
|
@range_end = nil
|
|
27
28
|
@range_gap = nil
|
|
29
|
+
@limit = nil
|
|
28
30
|
end
|
|
29
31
|
|
|
30
32
|
def to_qs(text)
|
data/lib/filter_query.rb
CHANGED
|
@@ -16,6 +16,18 @@ module SolrLite
|
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
+
def range_from()
|
|
20
|
+
tokens = (value || "").split(" - ")
|
|
21
|
+
return nil if tokens.count != 2
|
|
22
|
+
tokens[0].gsub("*","")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def range_to()
|
|
26
|
+
tokens = (value || "").split(" - ")
|
|
27
|
+
return nil if tokens.count != 2
|
|
28
|
+
tokens[1].gsub("*","")
|
|
29
|
+
end
|
|
30
|
+
|
|
19
31
|
# qs is assumed to be the value taken from the query string
|
|
20
32
|
# in the form `field|value` or `field|value1|valueN`.
|
|
21
33
|
#
|
|
@@ -58,9 +70,9 @@ module SolrLite
|
|
|
58
70
|
# Creates a filter query (fq) string as needed by Solr from
|
|
59
71
|
# an array of values. Handles single and multi-value gracefully.
|
|
60
72
|
# For single-value it returns "(field:value)". For multi-value
|
|
61
|
-
# it returns "(field:value1) OR (field:value2)"
|
|
62
|
-
#
|
|
63
|
-
#
|
|
73
|
+
# it returns "(field:value1) OR (field:value2)". We use the
|
|
74
|
+
# multi-value in the Advanced Search when we allow the user to
|
|
75
|
+
# select multiple values for a single facet.
|
|
64
76
|
def to_solr_fq_value(field, values)
|
|
65
77
|
solr_value = ""
|
|
66
78
|
values.each_with_index do |v, i|
|
|
@@ -75,6 +87,12 @@ module SolrLite
|
|
|
75
87
|
end
|
|
76
88
|
|
|
77
89
|
def to_solr_fq_value_range(field, range_start, range_end)
|
|
90
|
+
if range_start.empty?
|
|
91
|
+
range_start = "*"
|
|
92
|
+
end
|
|
93
|
+
if range_end.empty?
|
|
94
|
+
range_end = "*"
|
|
95
|
+
end
|
|
78
96
|
solr_value = '(' + field + ':[' + range_start + ' TO ' + range_end + '])'
|
|
79
97
|
# Very important to escape the : otherwise URL.parse throws an error in Linux
|
|
80
98
|
CGI.escape(solr_value)
|
data/lib/search_params.rb
CHANGED
|
@@ -202,7 +202,10 @@ module SolrLite
|
|
|
202
202
|
@facets.each do |f|
|
|
203
203
|
qs += "&facet.field=#{f.name}"
|
|
204
204
|
qs += "&f.#{f.name}.facet.mincount=1"
|
|
205
|
-
|
|
205
|
+
|
|
206
|
+
if f.limit != nil
|
|
207
|
+
qs += "&f.#{f.name}.facet.limit=#{f.limit}"
|
|
208
|
+
elsif @facet_limit != nil
|
|
206
209
|
qs += "&f.#{f.name}.facet.limit=#{@facet_limit}"
|
|
207
210
|
end
|
|
208
211
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solr_lite
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hector Correa
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-03-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: A lightweight gem to connect to Solr and run queries. Requires no extra
|
|
14
14
|
dependencies.
|