Hi list,
I have a problem grouping with ferret.
I’m using the filter_proc from Dave’s book as seen below
results = {}
group_by_proc = lambda do |doc_id, score, searcher|
doc = searcher[doc_id]
(results[doc[:pk_file_id]]||=[]) << doc[:filename] << doc[:path]
next true
end
The problem is that if I use this it ignores my limit clause.
I set limit on 10 and I still get 5995 results and it takes several
seconds.
How come the limit clause is ignored when using a filter_proc? How can
I change this behaviour?
term = “wi”
bool1 = Ferret::Search::BooleanQuery.new()
bool1.add_query(Ferret::Search::PrefixQuery.new(:filename, “#{term}”))
bool1.add_query(Ferret::Search::PrefixQuery.new(:path, “#{term}”))
index.search(bool1, :limit => 10, :filter_proc => group_by_proc)
puts result.size
5995
Cheers,
Henke