From 1d62726717aa4f99b2d87a6ca039ab701744b53f Mon Sep 17 00:00:00 2001 From: Jay Donnell Date: Fri, 19 Jun 2009 08:58:24 -0700 Subject: [PATCH 1/3] added default create_query --- lib/moonstone/engine.rb | 11 ++++++----- test/moonstone/engine_test.rb | 7 ++++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/moonstone/engine.rb b/lib/moonstone/engine.rb index 7414d3b..b689e9c 100644 --- a/lib/moonstone/engine.rb +++ b/lib/moonstone/engine.rb @@ -141,8 +141,10 @@ def close @reader.close if @reader end - #def create_query(query_string) - #end + def create_query(query_string) + raise "no default queyr parser" unless @default_query_parser + @default_query_parser.parse(query_string) + end # Returns an instance of the Analyzer class defined within # this class's namespace. @@ -182,9 +184,8 @@ def reader reader.close end - def parser(field, analyzer = nil) - @parser ||= {} - @parser[field.to_sym] ||= Lucene::QueryParser::Parser.new(field, analyzer || self.analyzer) + def default_query_parser(field, analyzer = nil) + @default_query_parser ||= Lucene::QueryParser::Parser.new(field, analyzer || self.analyzer) end def inspect_mode? diff --git a/test/moonstone/engine_test.rb b/test/moonstone/engine_test.rb index 44bbf43..8c3d595 100644 --- a/test/moonstone/engine_test.rb +++ b/test/moonstone/engine_test.rb @@ -46,7 +46,12 @@ def create_query(string) engine.index(@some_docs) engine.reader do |r| r.terms.for_field('name').sort.should == %w{ burger king depeche mode }.sort - end + end + + engine.default_query_parser("name") + results = engine.search("burger") + results[0]["name"].should == "Burger King" + results.length.should == 1 end it "initializes with an options hash" do From 7d903d587649881a0c7c53b4096f8432d5414a49 Mon Sep 17 00:00:00 2001 From: Jay Donnell Date: Fri, 19 Jun 2009 09:18:09 -0700 Subject: [PATCH 2/3] updated the tutorial --- README | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README b/README index ce67be6..7296857 100644 --- a/README +++ b/README @@ -14,10 +14,13 @@ Using moonstone is simple. engine = Moonstone::Engine.new # note: you can't use symbols for the keys - engine.index([{'title' => 'my blog post', 'content' => "blah blah blah"}]) - q = Lucene::Search::TermQuery.new("title", "blog") - documents = engine.search(q) + engine.index([{'title' => 'first post', 'content' => "blah blah blah"}]) + # this sets the field that is searched by default + engine.default_query_parser('title') + documents = engine.search('first') documents.each {|d| puts d['name']} + # to search on a different field + engine.search("content:blah") A typical engine will override two things; the doc_from method and the analyzer. From 46e27265f5580cabc3d428e0b9c7208ecb5feabc Mon Sep 17 00:00:00 2001 From: Jay Donnell Date: Sun, 29 Nov 2009 17:25:21 -0800 Subject: [PATCH 3/3] minor tweaks --- README | 6 +++--- lib/moonstone/engine.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README b/README index 7296857..633ef46 100644 --- a/README +++ b/README @@ -5,8 +5,8 @@ Moonstone is a JRuby wrapper around Java's Lucene search engine toolkit. == Goals * Engines: An engine abstraction that brings all common index and search operations under a single roof. -* Lucene Transparency: a transparent JRuby wrapper around Lucene -* Rubify Lucene: higher level classes that simplify use of Lucene constructs in Ruby +* Lucene Transparency: A transparent JRuby wrapper around Lucene which allows clear and direct access to the underlying lucene classes. +* Rubify Lucene: Higher level classes that simplify and Rubify the use of Lucene. == Engines @@ -18,7 +18,7 @@ Using moonstone is simple. # this sets the field that is searched by default engine.default_query_parser('title') documents = engine.search('first') - documents.each {|d| puts d['name']} + documents.each {|d| puts d['title']} # to search on a different field engine.search("content:blah") diff --git a/lib/moonstone/engine.rb b/lib/moonstone/engine.rb index b689e9c..ae54b45 100644 --- a/lib/moonstone/engine.rb +++ b/lib/moonstone/engine.rb @@ -142,7 +142,7 @@ def close end def create_query(query_string) - raise "no default queyr parser" unless @default_query_parser + raise "no default query parser" unless @default_query_parser @default_query_parser.parse(query_string) end