SELECT
MATCH(`product_name`) AGAINST ('leica' IN BOOLEAN MODE) * 100 AS name,
MATCH(`product_category_name`) AGAINST ('leica' IN BOOLEAN MODE) * 50 AS category,
MATCH(`product_description`) AGAINST ('leica' IN BOOLEAN MODE) * 20 AS description
FROM products
WHERE MATCH (`product_name`, `product_category_name`, `product_description`) AGAINST ('leica' IN BOOLEAN MODE)
ORDER BY (name)+(category)+(description) DESC LIMIT 0, 24
Donc, cela fonctionne très bien sauf dans un cas. Quand un produit a 'leica' dans le nom et la description, il est dépassé. Je voudrais que la description ne prenne en compte que si elle ne correspond pas à product_name ou product_category. Je pensais ajouter * -5 à quelque chose, mais je ne peux pas comprendre comment obtenir un nombre précis pour corriger ce qui apparaît dans la description sans une sorte de clause IF.Essayer de corriger pour MATCH ... CONTRE sur les premiers résultats
Vous pourriez rendre vos multiplicateurs plus grands, comme 1000, 100, 10. – Barmar