Ben olsam kategoriye özel filtreler yazmazdım bunun yerine her ürüne ilgililik puanı (relevance score) hesaplayan bir sistem kurardım.
Kullanıcının yazdığı kelimenin tam eşleşmesi, kelime olarak geçmesi, ürün adındaki konumu, kategori uyumu, popülerliği ve satış verisi gibi kriterlere puan verip sonuçları bu puana göre sıralardım hocam.
Böylece "süt" arandığında önce klasik süt ürünleri, ardından meyveli sütler, en son ise sütlü dondurma gibi dolaylı eşleşen ürünler gelir ve yeni ürün veya kategoriler eklendiğinde her biri için ayrı ayrı kural yazmanız gerekmez
Mysql de öncelik sırası verebilirsiniz. Ürünlerde yeni bileşen açın örneğin agirlik. Ürün ekleme yaparken agirlik bileşenini çıkmasını istediğiniz sıraya göre doldurun. agirlik değeri büyükten küçüğe şeklinde veri çekme sorgusu yazdırırsanız Süt 1L 100 integer agirlik değerindeyse üst sırada çıkar.