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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f7ea88e9fe3267f7bcf156c55607e61ce7877992
4
- data.tar.gz: a95c44a09162f6b3fc197f31233c24a51a5e90dc
3
+ metadata.gz: cf815a34939d8820ccafdaa3877de56993162b58
4
+ data.tar.gz: 787ca5406dc77dde7746ff7255fdad862c7260f1
5
5
  SHA512:
6
- metadata.gz: 0cbdc884667ebbb45b96ff73fab63075fea928ec84ae49e9766e39efc9ccaecda33483bdff67221fea8e4be415231430140062a03e26085b1f6d4c89a381f9c2
7
- data.tar.gz: e2301488966848ce01b4d2a39eb0e5f408105219912264b26f59e760010a6d75377d433474db426129a8f1a23a932a3cff5609bc8ea64ee3ad1eaf529b68d7d6
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
- data.each {|d|
37
+ # docs
38
+ data["docs"].each {|d|
38
39
  doc = SolrDocument.new
39
- d.each {|k,v| doc.setField 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
 
@@ -1,3 +1,3 @@
1
1
  module SolrLikeRackServer
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -9,25 +9,37 @@ module SolrLikeRackServer
9
9
  class << self
10
10
  def start mount_procs
11
11
  wakeupProc = nil
12
- server = WEBrick::HTTPServer.new(
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 Array === proc
24
- proc
25
- elsif Hash === proc
26
- [proc]
27
- elsif proc.arity == 0
28
- proc.call
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.call(req.query)
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"
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.1
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-02 00:00:00.000000000 Z
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/data.yml
91
- - test/run.sh
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/data.yml
118
- - test/run.sh
117
+ - test/localsearch-client-1.0.13-jar-with-dependencies.jar
118
+ - test/run.rb
data/test/data.yml DELETED
@@ -1,3 +0,0 @@
1
- - poi_code: G0123456789
2
- category1_code:
3
- - M01
data/test/run.sh DELETED
@@ -1,4 +0,0 @@
1
- #!/bin/sh
2
-
3
- cd ${0/run.sh}
4
- ruby -I ../lib -rsolr_like_rack_server -e 'SolrLikeRackServer.server({"/search/map_mini/select"=>YAML.load_file("data.yml")}).start'