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
|
def search query
|
||||||
result = []
|
result = []
|
||||||
@reader.read.each do |doc|
|
@reader.read.each do |doc|
|
||||||
result << doc if doc.attributes[@default_field].equals?(query)
|
result << doc if (doc.attributes[@default_field][:value] == (query))
|
||||||
end
|
end
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,9 +2,31 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
||||||
|
|
||||||
describe "IndexSearcher#search" do
|
describe "IndexSearcher#search" do
|
||||||
let(:path) { prepare_index_dir }
|
let(:path) { prepare_index_dir }
|
||||||
|
let(:w) { Polecat::IndexWriter.new(path) }
|
||||||
let(:s) { Polecat::IndexSearcher.new :path => 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 == []
|
s.search("foo").should == []
|
||||||
end
|
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
|
end
|
||||||
|
|
Loading…
Reference in New Issue