OK na ovu temu nije pisano douuuugo ali je ovo ono što mi treba.
Kako da iz mysql baze dobijem odgovarajuće slogove
U bazi imam tabelu (radi primjetra pojednostavićemo stvari, nazive tabela i kolona)
Text(TextId, TextSadzaj)
recimo da je zadan neki string. Ja mogu splitovati unos na onoliko riječi koliko ih ima (u slučaju "Iron Maiden - The Clairvoiant" ima 5 riječi) i od svake uraditi soundex.
Kako da pretražijemo po koloni TextSadrzaj. Napominjem da tabela Text sadrži mnogo slogova.
Meni pada ideja jedino da prilikom indeksiranja tj inserta u bazu Text razbijem sadržaj na riječi i od svake uradim soundex i insertujem u drugu tabelu
TextSoundex(TextId, SoundexId, VrijednostSoundexa)
onda da odradim nešto slično ovome (upit sam samo ovako kakucao ne znam da li radi):
Code:
SELECT
T.TextId,
T.TextSadrzaj
FROM Text T
LEFT JOIN TextSoundex S
ON T.TextId = S.TextId
WHERE S.VrijednostSoundexa IN ('I2345', 'M2333', 'T0011', 'C2345') --svi soundexi iz upita
GROUP BY
T.TextId,
T.TextSadrzaj
ORDER BY
COUNT(S.SoundexId) DESC
Ideja je sledeća da se prebroji koliko se soundex-a iz korisničkog upita poklapa sa rekstom iz baze. Malo me ovo brije jer će tabela TextSoundex da bude prevelika.
Postoji li kakva alternativa?