solr_like_rack_server 0.0.1-java → 0.0.2-java
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/solr_like_rack_server/response_writer_wrapper.rb +19 -3
- data/lib/solr_like_rack_server/version.rb +1 -1
- data/lib/solr_like_rack_server.rb +21 -9
- data/solr_like_rack_server.gemspec +1 -1
- data/test/localsearch-client-1.0.13-jar-with-dependencies.jar +0 -0
- data/test/run.rb +53 -0
- metadata +7 -7
- data/test/data.yml +0 -3
- data/test/run.sh +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf815a34939d8820ccafdaa3877de56993162b58
|
4
|
+
data.tar.gz: 787ca5406dc77dde7746ff7255fdad862c7260f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9998eb64672fdd1b2a4b0a968192761a2cc726478cb3f49457bfc2041f951ff2e5d06897504bec4ebe0808046d337eec774655e0c08ac6fec59449077c2cb25f
|
7
|
+
data.tar.gz: 814b8667819d39f5c860f8c34dde0a69afdac50b5ac883959c7839fb7d1161407a7e0688443680f3151b91469a472f83d846c5fa42d8db4cc3495e6c5ffd84e5
|
@@ -34,16 +34,32 @@ module SolrLikeRackServer
|
|
34
34
|
# SolrQueryResponse
|
35
35
|
def response data
|
36
36
|
docList = SolrDocumentList.new
|
37
|
-
|
37
|
+
# docs
|
38
|
+
data["docs"].each {|d|
|
38
39
|
doc = SolrDocument.new
|
39
|
-
d.each {|k,v|
|
40
|
+
d.each {|k,v|
|
41
|
+
v = Java::java.lang.Integer.new(v) if Fixnum === v
|
42
|
+
doc.setField k, v
|
43
|
+
}
|
40
44
|
docList.add doc
|
41
45
|
}
|
42
|
-
docList.setNumFound data.size
|
46
|
+
docList.setNumFound data["numFound"] || data.size
|
43
47
|
docList.setStart 0
|
44
48
|
docList.setMaxScore 1.0
|
45
49
|
res = SolrQueryResponse.new
|
46
50
|
res.add "response", docList
|
51
|
+
# facets
|
52
|
+
if data.has_key? "facets"
|
53
|
+
facet_counts = NamedList.new
|
54
|
+
res.add "facet_counts", facet_counts
|
55
|
+
facet_fields = NamedList.new
|
56
|
+
facet_counts.add "facet_fields", facet_fields
|
57
|
+
data["facets"].each {|facet_key, facet_data|
|
58
|
+
facet = NamedList.new
|
59
|
+
facet_fields.add facet_key, facet
|
60
|
+
facet_data.each {|f| f.each {|k, v| facet.add k, v } }
|
61
|
+
}
|
62
|
+
end
|
47
63
|
res
|
48
64
|
end
|
49
65
|
|
@@ -9,25 +9,37 @@ module SolrLikeRackServer
|
|
9
9
|
class << self
|
10
10
|
def start mount_procs
|
11
11
|
wakeupProc = nil
|
12
|
-
|
12
|
+
opt = {
|
13
13
|
Port: 12345,
|
14
14
|
Logger: WEBrick::Log.new('/dev/null'),
|
15
15
|
AccessLog: [],
|
16
16
|
StartCallback: Proc.new {
|
17
17
|
wakeupProc.call unless wakeupProc.nil?
|
18
18
|
}
|
19
|
-
|
19
|
+
}
|
20
|
+
unless ENV["SOLR_LIKE_RACK_SERVER_VERBOSE"].nil?
|
21
|
+
opt.delete :Logger
|
22
|
+
opt.delete :AccessLog
|
23
|
+
end
|
24
|
+
server = WEBrick::HTTPServer.new opt
|
20
25
|
mount_procs.each {|path, proc|
|
21
26
|
server.mount_proc(path) {|req, res|
|
22
27
|
res["Content-Type"] = "application/octet-stream"
|
23
|
-
data = if
|
24
|
-
proc
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
28
|
+
data = if Proc === proc
|
29
|
+
if proc.arity == 0
|
30
|
+
proc.call
|
31
|
+
else
|
32
|
+
proc.call req.query
|
33
|
+
end
|
29
34
|
else
|
30
|
-
proc
|
35
|
+
proc
|
36
|
+
end
|
37
|
+
data = if Array === data
|
38
|
+
{"docs"=>data}
|
39
|
+
elsif Hash === data
|
40
|
+
data["docs"] = [] unless data.has_key? "docs"
|
41
|
+
data["facets"] = {} unless data.has_key? "facets"
|
42
|
+
data
|
31
43
|
end
|
32
44
|
res.body = SolrLikeRackServer::ResponseWriterWrapper.new.write data
|
33
45
|
}
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["kozy4324@mapion.co.jp"]
|
11
11
|
spec.summary = %q{JRuby + Rackサーバー でSolr Web APIのjavabin形式でレスポンスする簡易テスト用サーバー}
|
12
12
|
spec.description = %q{JRuby + Rackサーバー でSolr Web APIのjavabin形式でレスポンスする簡易テスト用サーバー}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/kozy4324/solr_like_rack_server"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.platform = "java"
|
Binary file
|
data/test/run.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
require "pathname"
|
5
|
+
p_dir = Pathname.new("#{__FILE__}/../../").realpath.to_s
|
6
|
+
$LOAD_PATH << "#{p_dir}/lib"
|
7
|
+
require "solr_like_rack_server"
|
8
|
+
|
9
|
+
$CLASSPATH << "#{p_dir}/test/localsearch-client-1.0.13-jar-with-dependencies.jar"
|
10
|
+
java_import Java::jp.co.mapion.solr.client.core.LocalSearchClient
|
11
|
+
|
12
|
+
map_mini = YAML.load <<EOM
|
13
|
+
numFound: 1234
|
14
|
+
docs:
|
15
|
+
- poi_code: G0123456789
|
16
|
+
category1_code:
|
17
|
+
- M01
|
18
|
+
facets:
|
19
|
+
pref_ddd:
|
20
|
+
- "13:東京都": 12039
|
21
|
+
area_code:
|
22
|
+
- "002": 24849
|
23
|
+
EOM
|
24
|
+
reco_city = YAML.load <<EOM
|
25
|
+
- pref_code: "13"
|
26
|
+
pref_name: 東京都
|
27
|
+
city_code: "13101"
|
28
|
+
city_name: 東京都千代田区
|
29
|
+
category2_code: M01001
|
30
|
+
category2_name: M01001の名前
|
31
|
+
station_code: ST12345
|
32
|
+
station_name: 東京駅
|
33
|
+
poi_num: 100
|
34
|
+
EOM
|
35
|
+
|
36
|
+
SolrLikeRackServer.server(
|
37
|
+
"/search/map_mini/select"=>map_mini,
|
38
|
+
"/search/reco_city/select"=>reco_city,
|
39
|
+
) {
|
40
|
+
client = LocalSearchClient.new "map_mini"
|
41
|
+
client.executeQuery
|
42
|
+
puts client.getBeans(Java::jp.co.mapion.solr.client.beans.Phone.java_class).get(0).poi_code
|
43
|
+
puts client.getNumFound
|
44
|
+
facet = client.getFacetList("pref_ddd")[0]
|
45
|
+
puts facet.code
|
46
|
+
puts facet.name
|
47
|
+
puts facet.count
|
48
|
+
|
49
|
+
client = LocalSearchClient.new "reco_city"
|
50
|
+
client.executeQuery
|
51
|
+
puts client.getBeans(Java::jp.co.mapion.solr.client.beans.Recommendation.java_class).get(0).pref_code
|
52
|
+
puts client.getNumFound
|
53
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solr_like_rack_server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Koji NAKAMURA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -87,9 +87,9 @@ files:
|
|
87
87
|
- lib/solr_like_rack_server/response_writer_wrapper.rb
|
88
88
|
- lib/solr_like_rack_server/version.rb
|
89
89
|
- solr_like_rack_server.gemspec
|
90
|
-
- test/
|
91
|
-
- test/run.
|
92
|
-
homepage:
|
90
|
+
- test/localsearch-client-1.0.13-jar-with-dependencies.jar
|
91
|
+
- test/run.rb
|
92
|
+
homepage: https://github.com/kozy4324/solr_like_rack_server
|
93
93
|
licenses:
|
94
94
|
- MIT
|
95
95
|
metadata: {}
|
@@ -114,5 +114,5 @@ signing_key:
|
|
114
114
|
specification_version: 4
|
115
115
|
summary: JRuby + Rackサーバー でSolr Web APIのjavabin形式でレスポンスする簡易テスト用サーバー
|
116
116
|
test_files:
|
117
|
-
- test/
|
118
|
-
- test/run.
|
117
|
+
- test/localsearch-client-1.0.13-jar-with-dependencies.jar
|
118
|
+
- test/run.rb
|
data/test/data.yml
DELETED
data/test/run.sh
DELETED