Hi guys,
Is there some way of getting ferret matches string, when i do a fuzzy
search?
The scenario is this:
- The user search for ‘show’
- Nothing was found
- So I do a fuzzy search, passing ‘show~’
- It gives me somes results, most of all was matched with ‘showcase’
- So I want to tell the user that: Nothing was found with ‘show’,
didn’t you mean ‘showcase’?
So, how do i get the ferret matches string, that was ‘showcase’ in that
scenario?
Thanks in advance,
José Valim
I’ve found out how to do that:
You have a class ‘Class’ with acts_as_ferret, so do that:
queryObj = Class.aff_index.ferret_index.process_query(@query_string)
searchObj = Class.aaf_index.ferret_index.searcher
query_results = queryObj.terms(searchObj).collect! {|item| item[:text]
}.uniq
query_results.is_a?(Array) => true
On Tue, Sep 25, 2007 at 09:06:13PM +0200, José Valim wrote:
I’ve found out how to do that:
You have a class ‘Class’ with acts_as_ferret, so do that:
queryObj = Class.aff_index.ferret_index.process_query(@query_string)
searchObj = Class.aaf_index.ferret_index.searcher
query_results = queryObj.terms(searchObj).collect! {|item| item[:text]
}.uniq
right, however I doubt this kind of direct access to Ferret’s searcher
will
work with aaf’s DRb server.
You should add a method like ‘matching_terms(query_string)’ to aaf’s
LocalIndex class to encapsulate above code, so you can call it across
the DRb connection.
Cheers,
Jens
–
Jens Krämer
webit! Gesellschaft für neue Medien mbH
Schnorrstraße 76 | 01069 Dresden
Telefon +49 351 46766-0 | Telefax +49 351 46766-66
[email protected] | www.webit.de
Amtsgericht Dresden | HRB 15422
GF Sven Haubold, Hagen Malessa