Jag har tidigare använt MATCH() AGAINST() funktionerna i mysql för att göra sökningar men det fungerar ju minst sagt bristfälligt så jag tänkte koda en egen sökalgoritm med hjälp av LIKE kommandot istället.
Problemet blir att jag får massor av kriterier som kan se ut så här:
title LIKE '%test%' OR title LIKE '%annat%' OR title LIKE '%tredje%'
o.s.v.
Finns det något sätt att sortera ett sådant resultat efter relevans? Det jag skulle vilja ha är alltså någon variabel som räknas upp för varje ord som matchas. Men det kanske inte går? Kan tänka mig att sökningen slutar så fort en OR-sats uppfylls?
select title,IF(title LIKE '%test%',1,0)+IF(title LIKE '%annat%',1,0) as
score from tabell where title LIKE '%test%' or title LIKE '%annat%' order by score DESC;
Känns lite onödigt att göra dem två gånger, det jag vill göra i WHERE är ju egentligen bara att kolla om score>0 men det verkar bara gå att använda fält som ingår i tabellen i WHERE. Eller?
382 ms totalt · 4 externa anrop · v20260731065814-full.14655e19