Score more if begins with query


#1

Hi,
I need to score more on products, those names
begin with query, rather then just contain it.

I am not sure where to start research on that…
Any ideas?

Best regards,
Tom


#2

On Wed, Mar 21, 2007 at 05:57:46PM +0100, Linus wrote:

Hi,
I need to score more on products, those names
begin with query, rather then just contain it.

I am not sure where to start research on that…
Any ideas?

you could index the first word of your product names in a separate
field, and give that field a boost. So any query with a term that
matches the first word of the product name would score higher.

however there might well be better solutions to this problem I can’t
think of right now :slight_smile:

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
removed_email_address@domain.invalid | www.webit.de

Amtsgericht Dresden | HRB 15422
GF Sven Haubold, Hagen Malessa


#3

On 3/22/07, Linus removed_email_address@domain.invalid wrote:

Hi,
I need to score more on products, those names
begin with query, rather then just contain it.

I am not sure where to start research on that…
Any ideas?

See SpanFirstQuery. It is especially designed for this. Unfortunately
you can’t build one with the query parser. You need to build it by
hand.

http://ferret.davebalmain.com/api/classes/Ferret/Search/Spans/SpanFirstQuery.html


#4

Jens K. wrote:

you could index the first word of your product names in a separate
field, and give that field a boost. So any query with a term that
matches the first word of the product name would score higher.

however there might well be better solutions to this problem I can’t
think of right now :slight_smile:
I finished with this in controller:

q = “#{q}*^4 OR #{q}

It seems to do the job :slight_smile:

Best regards,
Tom