Hi list,

I'm messing around with weighting my search results, and I've run into a weird quirk that I'm hoping someone here could help me understand. I have a query like such:

SELECT
        xcart_products.product,
        xcart_product_meta.synonyms_misspellings,
        MATCH (xcart_product_meta.synonyms_misspellings)
        AGAINST ('couplers') AS rating
FROM
        xcart_products
LEFT JOIN
        xcart_product_meta
ON
        xcart_products.productid = xcart_product_meta.productid
WHERE
        MATCH (xcart_product_meta.synonyms_misspellings)
        AGAINST ('couplers')
GROUP BY
        product
ORDER BY
        rating DESC
LIMIT 2

The execution of this query returns the following:

[product] => Guinness Keg Coupler
[synonyms_misspellings] => couplers, couplers, coupler, guinness, guiness, Keg Coupler, beer Coupler, Coupler, keg tap,Guinness Stout, Harp Lager, Kilkenny, Fits U System Keg Valves,
[rating] => 5.85046195983887

[product] => US Sankey Lever Handle Coupler
[synonyms_misspellings] => couplers, couplers, couplers, coupler, sankey coupler, coupler sankey, tap, taps, keg tap, keg tap, keg taps, US coupler, US coupler, sankey coupler, snadkey, coupler, sandkey coupler, sanky coupler, tap, beer tap, beer taps, sankey
[rating] => 5.02479267120361

The good thing is, it's returning a very relevant result set, but I'm not understanding how it's weighting this. You'll notice that the last result set has a lower rating, but contains an exact match for the search term three times, where the higher rated item only contains it twice.

The db is MySQL 4.1.20 and the column synonyms_misspellings has a FULLTEXT index on it (the db is set to index on 3 characters). Can anyone help me understand why it's not rating the one with the match three times higher than the one with the match twice, and point me in the direction of how to make it work that way?

--
John C. Nichel IV
Programmer/System Admin
Dot Com Holdings of Buffalo
716.856.9675
[EMAIL PROTECTED]

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to