0
0
Fork 0

it's now possible to search on the default field

This commit is contained in:
Gibheer 2011-05-30 22:23:38 +02:00
parent 9a1c4eff90
commit 329f4d6d4b
2 changed files with 24 additions and 2 deletions

View File

@ -38,7 +38,7 @@ class Polecat
def search query
result = []
@reader.read.each do |doc|
result << doc if doc.attributes[@default_field].equals?(query)
result << doc if (doc.attributes[@default_field][:value] == (query))
end
result
end

View File

@ -2,9 +2,31 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe "IndexSearcher#search" do
let(:path) { prepare_index_dir }
let(:w) { Polecat::IndexWriter.new(path) }
let(:s) { Polecat::IndexSearcher.new :path => path }
it "takes a string as an argument" do
it "returns an empty array when nothing was found" do
s.search("foo").should == []
end
context "searching on a filled index" do
before do
w.add Spec::FooDocument.new(:name => 'foo')
w.add Spec::FooDocument.new(:name => 'bar')
w.add Spec::FooDocument.new(:name => 'baz')
w.add Spec::FooDocument.new(:name => 'foobar')
w.write
end
let :s do
Polecat::IndexSearcher.new(
:reader => w.create_reader,
:default_field => :name
)
end
it "returns an array of documents, when a document was found" do
s.search('foo').count.should == 1
end
end
end