cheap_skate 0.0.5 → 0.0.6

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.
@@ -95,7 +95,7 @@ END
95
95
  query.add_facets_to_query(parm)
96
96
  query.parse_facet_query(parm)
97
97
  end
98
- results = settings.index.search(query, opts)
98
+ results = settings.index.do_search(query, opts)
99
99
  results.nl_format = params['json.nl']||'flat'
100
100
  results
101
101
  end
@@ -54,7 +54,7 @@ module CheapSkate
54
54
  writer.field_infos.add_field(field, opts)
55
55
  end
56
56
 
57
- def search(query, opts={})
57
+ def do_search(query, opts={})
58
58
  results = ResultSet.new
59
59
  results.offset = opts[:offset]
60
60
  results.limit = opts[:limit]
@@ -73,9 +73,14 @@ module CheapSkate
73
73
  opts[:filter_proc] = query.filter_proc
74
74
  end
75
75
  end
76
-
77
- results.total = self.search_each(query.query, opts) do |id, score|
78
- results << @schema.typed_document(self[id])
76
+ searcher = Ferret::Search::Searcher.new(self.reader)
77
+ hits = searcher.search(query.query, opts)
78
+ results.total = hits.total_hits
79
+ results.max_score = hits.max_score
80
+ hits.hits.each do |hit|
81
+ doc = @schema.typed_document(self[hit.doc])
82
+ doc[:score] = hit.score
83
+ results << doc
79
84
  end
80
85
  if query.respond_to?(:facet_fields)
81
86
  facets = {}
@@ -95,7 +100,6 @@ module CheapSkate
95
100
  end
96
101
 
97
102
  def get_facets_from_index_terms(query)
98
- puts query.facet_fields.inspect
99
103
  query.facet_fields.keys.each do |field|
100
104
  field_terms = reader.terms(field)
101
105
  next unless field_terms
@@ -160,7 +164,6 @@ module CheapSkate
160
164
  end
161
165
  end
162
166
  unless bool.to_s.empty?
163
- puts "We did something here."
164
167
  return Ferret::Search::QueryFilter.new(bool)
165
168
  end
166
169
  nil
@@ -26,7 +26,7 @@ module CheapSkate
26
26
  end
27
27
 
28
28
  class ResultSet
29
- attr_accessor :total, :docs, :query, :limit, :offset, :facets, :query_time, :nl_format
29
+ attr_accessor :total, :docs, :query, :limit, :offset, :facets, :query_time, :nl_format, :max_score
30
30
  def <<(obj)
31
31
  @docs ||=[]
32
32
  @docs << obj
@@ -34,7 +34,8 @@ module CheapSkate
34
34
 
35
35
  def to_hash()
36
36
  response = {"responseHeader"=>{"status"=>0, "QTime"=>self.query_time, "params"=>{"q"=>self.query, "version"=>"2.2", "rows"=>self.limit}}}
37
- response["response"] = {"numFound"=>self.total, "start"=>self.offset, "docs"=>[]}
37
+ response["response"] = {"numFound"=>self.total, "start"=>self.offset, "rows"=>docs.length, "docs"=>[]}
38
+ response["response"]["maxScore"] = self.max_score if self.max_score
38
39
  if self.docs
39
40
  self.docs.each do |doc|
40
41
  response["response"]["docs"] << doc
@@ -121,8 +122,8 @@ module CheapSkate
121
122
  map_arr = {}
122
123
  @facet_fields.each_pair do |k,v|
123
124
  map_arr[k] ||= {}
124
- v.flatten.each_cons(2) do |key, val|
125
- map_arr[k][key] = val
125
+ v.each do |val_pair|
126
+ map_arr[k][val_pair[0]] = val_pair[1]
126
127
  end
127
128
  end
128
129
  map_arr
@@ -154,7 +154,11 @@ module CheapSkate
154
154
  lazy_doc.fields.each do |field|
155
155
  [*lazy_doc[field]].each do |fld|
156
156
  if doc[field]
157
- doc[field] = [*doc[field]]
157
+ if multi_valued?(field)
158
+ doc[field] = [*doc[field]]
159
+ else
160
+ doc[field] << "\n"
161
+ end
158
162
  doc[field] << type_field(field, fld)
159
163
  elsif multi_valued?(field)
160
164
  doc[field] = [type_field(field, fld)]
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 5
9
- version: 0.0.5
8
+ - 6
9
+ version: 0.0.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ross Singer
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-01 00:00:00 -04:00
17
+ date: 2010-06-02 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency