Sha256: 6cd84f5bff122e9d81f9a2caf67ba7bb4a24b798ddf9df69033654ed5f3fb97b

Contents?: true

Size: 1.59 KB

Versions: 18

Compression:

Stored size: 1.59 KB

Contents

# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

class Solr::Response::Standard < Solr::Response::Ruby
  FacetValue = Struct.new(:name, :value)
  include Enumerable
  
  def initialize(ruby_code)
    super
    @response = @data['response']
    raise "response section missing" unless @response.kind_of? Hash
  end

  def total_hits
    @response['numFound']
  end

  def start
    @response['start']
  end

  def hits
    @response['docs']
  end

  def max_score
    @response['maxScore']
  end
  
  # TODO: consider the use of json.nl parameter
  def field_facets(field)
    facets = []
    values = @data['facet_counts']['facet_fields'][field]
    Solr::Util.paired_array_each(values) do |key, value|
      facets << FacetValue.new(key, value)
    end
    
    facets
  end
  
  def highlighted(id, field)
    @data['highlighting'][id.to_s][field.to_s] rescue nil
  end
  
  def highlighting
    @data['highlighting']
  end
  
  # supports enumeration of hits
  # TODO revisit - should this iterate through *all* hits by re-requesting more?
  def each
    @response['docs'].each {|hit| yield hit}
  end

end

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
onemorecloud-websolr-rails-1.3.3 lib/solr/response/standard.rb
onemorecloud-websolr-rails-1.4.0 lib/solr/response/standard.rb
onemorecloud-websolr-rails-1.4.1 lib/solr/response/standard.rb
acts_as_solr-1.3.3 lib/solr/response/standard.rb
acts_as_solr-1.3.2 lib/solr/response/standard.rb
acts_as_solr-1.3.1 lib/solr/response/standard.rb
acts_as_solr-1.3.0 lib/solr/response/standard.rb
acts_as_solr-1.2.0 lib/solr/response/standard.rb
acts_as_solr-1.1.3 lib/solr/response/standard.rb
acts_as_solr-1.1.2 lib/solr/response/standard.rb
acts_as_solr-1.1.1 lib/solr/response/standard.rb
acts_as_solr-1.0.0 lib/solr/response/standard.rb
onemorecloud-websolr-rails-1.4.6 lib/solr/response/standard.rb
onemorecloud-websolr-rails-1.4.5 lib/solr/response/standard.rb
onemorecloud-websolr-rails-1.4.4 lib/solr/response/standard.rb
websolr-rails-1.4.4 lib/solr/response/standard.rb
onemorecloud-websolr-rails-1.4.3 lib/solr/response/standard.rb
websolr-rails-1.4.3 lib/solr/response/standard.rb