Class: SolrLikeRackServer::ResponseWriterWrapper
- Inherits:
-
Object
- Object
- SolrLikeRackServer::ResponseWriterWrapper
- Defined in:
- lib/solr_like_rack_server/response_writer_wrapper.rb
Instance Method Summary collapse
-
#request ⇒ Object
SolrQueryRequest.
-
#response(data) ⇒ Object
SolrQueryResponse.
- #responseWriter ⇒ Object
- #write(data) ⇒ Object
Instance Method Details
#request ⇒ Object
SolrQueryRequest
30 31 32 |
# File 'lib/solr_like_rack_server/response_writer_wrapper.rb', line 30 def request MySolrQueryRequest.new nil, MySolrParams.new end |
#response(data) ⇒ Object
SolrQueryResponse
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/solr_like_rack_server/response_writer_wrapper.rb', line 35 def response data docList = SolrDocumentList.new # docs data["docs"].each {|d| doc = SolrDocument.new d.each {|k,v| v = Java::java.lang.Integer.new(v) if Fixnum === v doc.setField k, v } docList.add doc } docList.setNumFound data["numFound"] || data.size docList.setStart 0 docList.setMaxScore 1.0 res = SolrQueryResponse.new res.add "response", docList # facets if data.has_key? "facets" facet_counts = NamedList.new res.add "facet_counts", facet_counts facet_fields = NamedList.new facet_counts.add "facet_fields", facet_fields data["facets"].each {|facet_key, facet_data| facet = NamedList.new facet_fields.add facet_key, facet facet_data.each {|f| f.each {|k, v| facet.add k, v } } } end res end |
#responseWriter ⇒ Object
66 67 68 |
# File 'lib/solr_like_rack_server/response_writer_wrapper.rb', line 66 def responseWriter BinaryResponseWriter.new end |
#write(data) ⇒ Object
70 71 72 73 74 75 |
# File 'lib/solr_like_rack_server/response_writer_wrapper.rb', line 70 def write data outputStream = ByteArrayOutputStream.new responseWriter.write outputStream, request, response(data) byteArray = outputStream.toByteArray String.from_java_bytes byteArray end |