it's now possible to search on the default field
This commit is contained in:
parent
9a1c4eff90
commit
329f4d6d4b
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue