Hi,
I seem to be having trouble updating a doc, ie, deleting then re-adding
to the index.
The following script demonstrates my issue - I’m sure I’m missing
something obvious, but I can’t seem to find the problem. Can someone
point out where I am going wrong please ?
Regards
Neville
===
require ‘rubygems’
require ‘ferret’
p Ferret::VERSION
@dir = Ferret::Store::RAMDirectory.new
@index = Ferret::Index::Index.new(:dir => @dir)
(1…1000).each do |n|
@index << {:id => “doc#{n}”, :name => “name #{n}”}
end
@doc_999 = @index[“doc999”]
@doc_999.load if @doc_999
p “doc_999 not found” unless @doc_999
p “doc_999 name=#{@doc_999[:name]}” if @doc_999
@new_doc = {:id => “doc999”, :name => “fred”}
p “deleting and adding new doc999”
@index.delete(“doc999”)
@index << @new_doc
@doc_999 = @index[“doc999”]
@doc_999.load if @doc_999
p “new_doc_999 not found” unless @doc_999
p “new_doc_999 name=#{@doc_999[:name]}” if @doc_999
@index.close
@index = nil
===
$> ruby test_delete2.rb
“0.10.4”
“doc_999 name=name 999”
“deleting and adding new doc999”
“new_doc_999 not found”