Class: Ferret::Index::SegmentTermDocPosEnum
Instance Attribute Summary
#count, #deleted_docs, #df, #doc, #freq, #freq_stream, #parent
Instance Method Summary
collapse
#seek, #skip_to
Methods inherited from TermDocEnum
#doc, #freq, #seek, #skip_to
Constructor Details
Returns a new instance of SegmentTermDocPosEnum.
240
241
242
243
|
# File 'lib/ferret/index/term_doc_enum.rb', line 240
def initialize(p)
super
@prox_stream = p.prox_stream.clone()
end
|
Instance Method Details
#close ⇒ Object
253
254
255
256
|
# File 'lib/ferret/index/term_doc_enum.rb', line 253
def close()
super
@prox_stream.close()
end
|
#do_seek(ti) ⇒ Object
245
246
247
248
249
250
251
|
# File 'lib/ferret/index/term_doc_enum.rb', line 245
def do_seek(ti)
super
if (ti != nil)
@prox_stream.seek(ti.prox_pointer)
end
@prox_count = 0
end
|
#next? ⇒ Boolean
267
268
269
270
271
272
273
274
275
276
|
# File 'lib/ferret/index/term_doc_enum.rb', line 267
def next?()
@prox_count.times { @prox_stream.read_vint() }
if (super)
@prox_count = @freq @position = 0 return true
end
return false
end
|
#next_position ⇒ Object
258
259
260
261
|
# File 'lib/ferret/index/term_doc_enum.rb', line 258
def next_position()
@prox_count -= 1
return @position += @prox_stream.read_vint()
end
|
#read(docs, freqs) ⇒ Object
278
279
280
|
# File 'lib/ferret/index/term_doc_enum.rb', line 278
def read(docs, freqs)
raise NotImplementedError, "TermDocPosEnum does not support processing multiple documents in one call. Use TermDocEnum instead."
end
|
#skip_prox(prox_pointer) ⇒ Object
Called by super.skipTo().
283
284
285
286
|
# File 'lib/ferret/index/term_doc_enum.rb', line 283
def skip_prox(prox_pointer)
@prox_stream.seek(prox_pointer)
@prox_count = 0
end
|
#skipping_doc ⇒ Object
263
264
265
|
# File 'lib/ferret/index/term_doc_enum.rb', line 263
def skipping_doc()
@freq.times { @prox_stream.read_vint() }
end
|