Ik ga met een vriend van mij een film-database-website bouwen (300.000 films
), en op die site wil ik een goede zoekfunctie hebben.
Gebruikte toolz:
- MySQL 3.23.23 (laatste stable)
- PHP 4.1.2
- OS: Linux, maar het zal niet veel uitmaken denk ik...
Het zoeken naar woorden die goed zijn gespeld is geen probleem, maar zoeken naar woorden die fout gespeld zijn, is een stuk lastiger.
Dus als ik in die database 'James Bond: Tomorrow Never Dies' heb, dan vind ik het niet als ik op 'tommorrow' zoek.
Ik maak gebruik van geindexeerde kolomen (om het een beetje snel te laten lopen
zoeken met de bovenstaande query gaat wer goed en snel, maar nadeel is dat je niet op wildcards kan zoeken (ik heb niet kunnen vinden hoe) dus niet 'jame*' ofzo...
Zoeken met
is uitgesloten, want het is te traag!
ik zoek dus eigenlijk een methode in MySQL (of eventueel andere Database, die onder Linux draait en snel is) waarmee ik dus twee extra dingen kan:
- zoeken op wildcards en
- zoeken naar foutgespelde (dus b.v. 'tommorrow') woorden..
iemand een idee en/of ervaring met deze dingen?
Gebruikte toolz:
- MySQL 3.23.23 (laatste stable)
- PHP 4.1.2
- OS: Linux, maar het zal niet veel uitmaken denk ik...
Het zoeken naar woorden die goed zijn gespeld is geen probleem, maar zoeken naar woorden die fout gespeld zijn, is een stuk lastiger.
Dus als ik in die database 'James Bond: Tomorrow Never Dies' heb, dan vind ik het niet als ik op 'tommorrow' zoek.
Ik maak gebruik van geindexeerde kolomen (om het een beetje snel te laten lopen
code:
1
| SELECT * FROM Movies WHERE MATCH (title) AGAINST ('bond'); |
zoeken met de bovenstaande query gaat wer goed en snel, maar nadeel is dat je niet op wildcards kan zoeken (ik heb niet kunnen vinden hoe) dus niet 'jame*' ofzo...
Zoeken met
code:
1
| SELECT * FROM Movies WHERE title LIKE 'jame%'; |
is uitgesloten, want het is te traag!
ik zoek dus eigenlijk een methode in MySQL (of eventueel andere Database, die onder Linux draait en snel is) waarmee ik dus twee extra dingen kan:
- zoeken op wildcards en
- zoeken naar foutgespelde (dus b.v. 'tommorrow') woorden..
iemand een idee en/of ervaring met deze dingen?