Hi!
I thought I understood Ferret’s query scoring and how to tweak
results using boost values. What I currently experience however,
leaves me completely baffled.
Perhaps someone can shed some light on the scoring algorithm, because
asking Ferret to “explain” the score for a particular document isn’t
as informative as I thought. Actually, it confuses me even more.
Here’s what I got:
I’m indexing locations (addresses) in Ferret using the following fields:
street, zipcode, district, city, county, state, country_code
Addresses are stored in different precisions, i.e. not all of the
fields contain values depending on the location’s accuracy. Here are
two examples:
-
Berlin, Germany:
country_code: de
city: Berlin -
The district ‘Berlin’ in a town called ‘Seedorf’:
country_code: de
city: Seedorf
district: Berlin
When querying for “berlin, de”, document #2 is ranked higher
(probably due to its natural position in the index). Since I want the
less accurate locations to rank higher, I added boost values. In the
example above, assume that city has a boost of 8 and district has a
boost of 7.
With this little adjustment the first document should rank higher
since the term ‘berlin’ appears in the city field. As you might
suspect, this is not what happens. And I consider this a bug.
Then I went and set the document boost to be 8 for a countries and 1
for streets. This doesn’t help either.
The ranking of other results change slightly but nothing seems to be
consistent with the boost settings. Perhaps the boost settings and
the results are related in some way. But it’s definitely not a
logical relation.
I’m thankful for any hint on how to achieve a proper ranking.
Thanks!
Andy