blacklight_advanced_search 8.0.0 → 8.1.0
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/.github/workflows/ruby.yml +1 -1
- data/Rakefile +49 -7
- data/VERSION +1 -1
- data/compose.yaml +16 -0
- data/lib/blacklight_advanced_search/advanced_search_builder.rb +4 -3
- 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: 1373f3849b2564bb57b5a4596dc798f26fa47566dcea685a9a24f202f9ef5e63
|
|
4
|
+
data.tar.gz: 494eb7f9dd89f644a3228423a555153a68d734e71f990570a9f4be2169babfac
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ac4768563ed3ff1370260a14523ff977db90d663ff054258589e48c087dfd18e9149b00402521aab4506e083a9efdea48e0e4800d421c5228451893781d5bfe7
|
|
7
|
+
data.tar.gz: 596aed99657baa1e2b840bda03fd32fbdeb80a55c4dfe2b00434b52660d2c0c9f5b832fbc4ba4084350178b9c2feaead208a347ca186e66b1633b9ab9bd90fda
|
data/.github/workflows/ruby.yml
CHANGED
data/Rakefile
CHANGED
|
@@ -7,6 +7,52 @@ require 'rdoc/task'
|
|
|
7
7
|
require 'rubocop/rake_task'
|
|
8
8
|
require 'rspec/core/rake_task'
|
|
9
9
|
require 'engine_cart/rake_task'
|
|
10
|
+
require 'net/http'
|
|
11
|
+
|
|
12
|
+
# Run Solr with docker compose when it's available, otherwise with solr_wrapper.
|
|
13
|
+
def with_solr(&block)
|
|
14
|
+
if system('docker compose version', out: File::NULL, err: File::NULL)
|
|
15
|
+
with_docker_solr(&block)
|
|
16
|
+
else
|
|
17
|
+
with_solr_wrapper(&block)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def with_docker_solr
|
|
22
|
+
puts 'Starting Solr'
|
|
23
|
+
system('docker compose up -d solr', exception: true)
|
|
24
|
+
wait_for_solr
|
|
25
|
+
yield
|
|
26
|
+
ensure
|
|
27
|
+
puts 'Stopping Solr'
|
|
28
|
+
system('docker compose stop solr')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def with_solr_wrapper(&block)
|
|
32
|
+
require 'solr_wrapper'
|
|
33
|
+
|
|
34
|
+
SolrWrapper.wrap(port: '8983') do |solr|
|
|
35
|
+
solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path(__dir__), "solr", "conf"), &block)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# `docker compose up -d` returns before Solr has created the core.
|
|
40
|
+
def wait_for_solr(timeout: 60)
|
|
41
|
+
ping = URI("http://127.0.0.1:#{ENV.fetch('SOLR_PORT', 8983)}/solr/blacklight-core/admin/ping")
|
|
42
|
+
deadline = Process.clock_gettime(Process::CLOCK_MONOTONIC) + timeout
|
|
43
|
+
|
|
44
|
+
until solr_ping?(ping)
|
|
45
|
+
raise "Solr did not respond at #{ping} within #{timeout} seconds" if Process.clock_gettime(Process::CLOCK_MONOTONIC) > deadline
|
|
46
|
+
|
|
47
|
+
sleep 1
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def solr_ping?(uri)
|
|
52
|
+
Net::HTTP.get_response(uri).is_a?(Net::HTTPSuccess)
|
|
53
|
+
rescue StandardError
|
|
54
|
+
false
|
|
55
|
+
end
|
|
10
56
|
|
|
11
57
|
task :default => :ci
|
|
12
58
|
|
|
@@ -24,13 +70,9 @@ end
|
|
|
24
70
|
|
|
25
71
|
desc "Execute Continuous Integration build"
|
|
26
72
|
task :ci => ['rubocop', 'engine_cart:generate'] do
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path(__dir__), "solr", "conf")) do
|
|
31
|
-
Rake::Task['fixtures'].invoke
|
|
32
|
-
Rake::Task['spec'].invoke
|
|
33
|
-
end
|
|
73
|
+
with_solr do
|
|
74
|
+
Rake::Task['fixtures'].invoke
|
|
75
|
+
Rake::Task['spec'].invoke
|
|
34
76
|
end
|
|
35
77
|
end
|
|
36
78
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
8.
|
|
1
|
+
8.1.0
|
data/compose.yaml
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
services:
|
|
2
|
+
solr:
|
|
3
|
+
image: "solr:${SOLR_VERSION:-9.10.1}"
|
|
4
|
+
volumes:
|
|
5
|
+
- $PWD/solr/conf:/opt/solr/conf
|
|
6
|
+
ports:
|
|
7
|
+
- "${SOLR_PORT:-8983}:8983"
|
|
8
|
+
environment:
|
|
9
|
+
- SOLR_OPTS=-Dsolr.config.lib.enabled=true
|
|
10
|
+
entrypoint:
|
|
11
|
+
- docker-entrypoint.sh
|
|
12
|
+
- solr-precreate
|
|
13
|
+
- blacklight-core
|
|
14
|
+
- /opt/solr/conf
|
|
15
|
+
- "-Xms256m"
|
|
16
|
+
- "-Xmx512m"
|
|
@@ -49,9 +49,10 @@ module BlacklightAdvancedSearch
|
|
|
49
49
|
# parse and send it straight to solr same as if advanced_parse_q
|
|
50
50
|
# were not being used.
|
|
51
51
|
def add_advanced_parse_q_to_solr(solr_parameters)
|
|
52
|
-
|
|
52
|
+
params = search_state.params
|
|
53
|
+
return if params[:q].blank? || !params[:q].respond_to?(:to_str)
|
|
53
54
|
|
|
54
|
-
field_def = blacklight_config.search_fields[
|
|
55
|
+
field_def = blacklight_config.search_fields[params[:search_field]] ||
|
|
55
56
|
blacklight_config.default_search_field
|
|
56
57
|
|
|
57
58
|
# If the individual field has advanced_parse_q suppressed, punt
|
|
@@ -63,7 +64,7 @@ module BlacklightAdvancedSearch
|
|
|
63
64
|
# See if we can parse it, if we can't, we're going to give up
|
|
64
65
|
# and just allow basic search, perhaps with a warning.
|
|
65
66
|
begin
|
|
66
|
-
adv_search_params = ParsingNesting::Tree.parse(
|
|
67
|
+
adv_search_params = ParsingNesting::Tree.parse(params[:q], blacklight_config.advanced_search[:query_parser]).to_single_query_params(solr_local_params)
|
|
67
68
|
|
|
68
69
|
BlacklightAdvancedSearch.deep_merge!(solr_parameters, solr_direct_params)
|
|
69
70
|
BlacklightAdvancedSearch.deep_merge!(solr_parameters, adv_search_params)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: blacklight_advanced_search
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 8.
|
|
4
|
+
version: 8.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Rochkind
|
|
@@ -188,6 +188,7 @@ files:
|
|
|
188
188
|
- Rakefile
|
|
189
189
|
- VERSION
|
|
190
190
|
- blacklight_advanced_search.gemspec
|
|
191
|
+
- compose.yaml
|
|
191
192
|
- config/routes.rb
|
|
192
193
|
- lib/blacklight_advanced_search.rb
|
|
193
194
|
- lib/blacklight_advanced_search/advanced_query_parser.rb
|
|
@@ -247,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
247
248
|
- !ruby/object:Gem::Version
|
|
248
249
|
version: '0'
|
|
249
250
|
requirements: []
|
|
250
|
-
rubygems_version:
|
|
251
|
+
rubygems_version: 4.0.22
|
|
251
252
|
specification_version: 4
|
|
252
253
|
summary: Blacklight Advanced Search plugin
|
|
253
254
|
test_files:
|