In order to solve this, I believe you can either construct your query using QueryParser, which will use the analyzer / tokenizer and split the terms out for you, or you can simply split the 'section' string on whitespace and build a Term and TermQuery for each resulting element and build a PhraseQuery from that set.
I hope this is some help,
Jeremy
On 7/14/06, BlueJay <[EMAIL PROTECTED]> wrote:
I am trying to build up a filtered search using the logic below.
bq = Ferret::Search:: BooleanQuery.new
bq.add_query(Ferret::Search::TermQuery.new(Ferret::Index::Term.new("section",section.downcase!)),
Ferret::Search::BooleanClause::Occur::MUST)
filter = Ferret::Search:: QueryFilter.new(bq)
@vobjects = VoObject.find_by_contents(search_input,:filter =>
filter, :sort => ["section", "sale_category"])
This works fine when the "section" is a single word like "book" but when
there is white spaces in the query like "paperback book" it does not
find the appropriate result and comes back with zero hits.
I changed this to use FuzzyQuery and it works but I sometimes get
segmentation errors (this was reported in another topic).
Does anyone have a solution to this problem for me?
Thanks very much.
--
Posted via http://www.ruby-forum.com/ .
_______________________________________________
Ferret-talk mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ferret-talk
_______________________________________________ Ferret-talk mailing list [email protected] http://rubyforge.org/mailman/listinfo/ferret-talk

