ferret 0.3.0 → 0.3.1

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.
data/ext/ferret_ext.so CHANGED
Binary file
data/ext/index_io.c CHANGED
@@ -170,10 +170,10 @@ VALUE
170
170
  frt_indexin_read_int(VALUE self)
171
171
  {
172
172
  GET_MY_BUF;
173
- return LONG2NUM(((long)frt_read_byte(self, my_buf) << 24) |
174
- ((long)frt_read_byte(self, my_buf) << 16) |
175
- ((long)frt_read_byte(self, my_buf) << 8) |
176
- (long)frt_read_byte(self, my_buf));
173
+ return LONG2NUM(((int)frt_read_byte(self, my_buf) << 24) |
174
+ ((int)frt_read_byte(self, my_buf) << 16) |
175
+ ((int)frt_read_byte(self, my_buf) << 8) |
176
+ (int)frt_read_byte(self, my_buf));
177
177
  }
178
178
 
179
179
  VALUE
@@ -194,10 +194,10 @@ static VALUE
194
194
  frt_indexin_read_uint(VALUE self)
195
195
  {
196
196
  GET_MY_BUF;
197
- return ULONG2NUM(((unsigned long)frt_read_byte(self, my_buf) << 24) |
198
- ((unsigned long)frt_read_byte(self, my_buf) << 16) |
199
- ((unsigned long)frt_read_byte(self, my_buf) << 8) |
200
- (unsigned long)frt_read_byte(self, my_buf));
197
+ return ULONG2NUM(((unsigned int)frt_read_byte(self, my_buf) << 24) |
198
+ ((unsigned int)frt_read_byte(self, my_buf) << 16) |
199
+ ((unsigned int)frt_read_byte(self, my_buf) << 8) |
200
+ (unsigned int)frt_read_byte(self, my_buf));
201
201
  }
202
202
 
203
203
  static VALUE
@@ -35,6 +35,7 @@ static VALUE
35
35
  frt_ste_init(VALUE self, VALUE input, VALUE field_infos, VALUE is_index)
36
36
  {
37
37
  int first_int;
38
+ VALUE rsize;
38
39
  GET_STE;
39
40
  ste->is_index = RTEST(is_index);
40
41
  ste->input = input;
@@ -63,7 +64,8 @@ frt_ste_init(VALUE self, VALUE input, VALUE field_infos, VALUE is_index)
63
64
  } else {
64
65
  // we have a format version number
65
66
  ste->format = first_int;
66
- ste->size = FIX2INT(frt_indexin_read_long(input)); // read the size
67
+ rsize = frt_indexin_read_long(input);
68
+ ste->size = NUM2INT(rsize); // read the size
67
69
 
68
70
  if (ste->format == -1) {
69
71
  if (!ste->is_index) {
data/lib/ferret.rb CHANGED
@@ -22,7 +22,7 @@
22
22
  #++
23
23
  # :include: ../TUTORIAL
24
24
  module Ferret
25
- VERSION = '0.3.0'
25
+ VERSION = '0.3.1'
26
26
  end
27
27
 
28
28
  require 'ferret/utils'
@@ -335,18 +335,20 @@ module Ferret::Index
335
335
  # id:: The number of the document to delete
336
336
  def delete(id)
337
337
  @dir.synchronize do
338
+ cnt = 0
338
339
  ensure_reader_open()
339
340
  if id.is_a?(String)
340
341
  t = Term.new("id", id.to_s)
341
- return @reader.delete_docs_with_term(t)
342
+ cnt = @reader.delete_docs_with_term(t)
342
343
  elsif id.is_a?(Term)
343
- return @reader.delete_docs_with_term(id)
344
+ cnt = @reader.delete_docs_with_term(id)
344
345
  elsif id.is_a?(Integer)
345
- return @reader.delete(id)
346
+ cnt = @reader.delete(id)
346
347
  else
347
348
  raise ArgumentError, "Cannot delete for id of type #{id.class}"
348
349
  end
349
350
  flush() if @auto_flush
351
+ return cnt
350
352
  end
351
353
  end
352
354
 
@@ -485,7 +487,7 @@ module Ferret::Index
485
487
  @dir.synchronize do
486
488
  ensure_writer_open()
487
489
  @writer.optimize()
488
- @modified = true
490
+ flush()
489
491
  end
490
492
  end
491
493
 
@@ -242,7 +242,7 @@ module Ferret::Index
242
242
  skip_pointer = write_skip()
243
243
 
244
244
  if (df > 0)
245
- # add an enbegin to the dictionary with pointers to prox and freq files
245
+ # add an entry to the dictionary with pointers to prox and freq files
246
246
  @term_info.set_values!(df, freq_pointer, prox_pointer, (skip_pointer - freq_pointer))
247
247
  @term_infos_writer.add(smis[0].term_buffer.term, @term_info)
248
248
  end
@@ -93,7 +93,7 @@ module Ferret::Search
93
93
  # Repeat until at least the minimum number of subscorers match on the same
94
94
  # document and all subscorers are after that document or are exhausted.
95
95
  #
96
- # On enbegin the +@scorer_queue+ has at least +@minimum_nr_matchers+
96
+ # On entry the +@scorer_queue+ has at least +@minimum_nr_matchers+
97
97
  # available. At least the scorer with the minimum document number will be advanced.
98
98
  # returns:: true iff there is a match.
99
99
  #
@@ -459,6 +459,12 @@ class IndexTest < Test::Unit::TestCase
459
459
  index1 << doc
460
460
  index2 << doc
461
461
  end
462
+ 5.times do |i|
463
+ index1.delete(i)
464
+ index2.delete(i + 5)
465
+ end
466
+ index1.optimize
467
+ index2 << "thirteen"
462
468
  rescue Exception => e
463
469
  assert(false, "This should not cause an error when auto flush has been set")
464
470
  end
@@ -65,6 +65,9 @@ class IndexSearcherTest < Test::Unit::TestCase
65
65
  tq = TermQuery.new(Term.new("field", "word2"));
66
66
  tq.boost = 100
67
67
  check_hits(tq, [1,4,8])
68
+ #puts @is.explain(tq, 1)
69
+ #puts @is.explain(tq, 4)
70
+ #puts @is.explain(tq, 8)
68
71
 
69
72
  tq = TermQuery.new(Term.new("field", "2342"));
70
73
  check_hits(tq, [])
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: ferret
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.0
7
- date: 2005-12-02 00:00:00 +09:00
6
+ version: 0.3.1
7
+ date: 2005-12-08 00:00:00 +09:00
8
8
  summary: Ruby indexing library.
9
9
  require_paths:
10
10
  - lib
@@ -52,8 +52,8 @@ files:
52
52
  - ext/dummy.exe
53
53
  - ext/segment_term_enum.c
54
54
  - ext/terminfo.c
55
- - ext/term_infos_reader.c
56
55
  - ext/ferret_ext.so
56
+ - ext/term_infos_reader.c
57
57
  - ext/similarity.c
58
58
  - lib/ferret.rb
59
59
  - lib/ferret/analysis.rb