Pravim sistem za pretragu koju radi full-text search po vise polja, i naleteo sam na sledeci problem:
Pretraga se vrsi po poljima keywords, title i description (postoji jedan full text index za ta polja).
Recimo da imam 2 rekorda:
Kôd:
ID TITLE DESCRIPTION
1 Ovo je naslov Ovo je neki opis
2 Ovo je neki naslov blabla
Ako neko uradi upit:
Kôd:
SELECT id, MATCH (keywords, title, description) AGAINST ('neki naslov') AS rel_kw_title
FROM data
WHERE status='published' AND MATCH (keywords, title, description) AGAINST ('neki naslov')
ORDER BY rel_kw_title DESC
dobice se da je red sa ID-jem 1 relevantniji iako on ima trazene reci odvojene. Probao sam i sa boolean searchom i onda se dobije isti relevance za oba (2 posto ima 2 matcha). Meni naravno treba da tamo gde je tacna fraza, nadje prvo nju, pa onda sve ostale.
Da li imate neku ideju kako ovo izbeci? Jedino sto 100% pomaze je da se stave navodnici oko svega, ali onda mi "Pera Peric" nece pronaci "Peric Pera" sto mi je takodje potrebno, tako da mi to nije dobro resenje.