Tot nu toe heb ik eigenlijk alleen ervaring met kleine databases, maar voor een nieuw project gaat de database zeker honderd miljoen records bevatten. Het gaat om het indexeren van berichten zoals emails, waarbij door de subject van de email gezocht moet kunnen worden. De database is nu nog leeg omdat ik eerst wil weten hoe ik deze het beste kan vullen.
Wat ik uiteindelijk wil bereiken is dat de gebruiker met een zoekopdracht "eten jan piet" de volgende onderwerpen zal vinden, en dan uiteraard binnen enkele milliseconden:
- eten jan-piet
- etentje jan piet
- RE: etentje janpiet
Wat ik heb geprobeerd is het onderwerp filteren zodat alleen kleine letters en cijfers overblijven. De bovenstaande onderwerpen zouden dan zo in de database staan:
- etenjanpiet
- etentjejanpiet
- reetentjejanpiet
Om vervolgens met ieder trefwoord in een LIKE QUERY door de onderwerpen te zoeken:
SELECT * FROM table WHERE indx LIKE %eten% AND indx LIKE %jan% AND indx LIKE %piet%;
Ik ben alleen bang dat dit traag gaat worden naarmate de database groter gaat worden.
Wat is in dit geval wijsheid qua indexeren en zoeken in de database?
Berichten worden overigens nooit geupdate, het is eenmalig inserten en daarna alleen zoeken.
Wat ik uiteindelijk wil bereiken is dat de gebruiker met een zoekopdracht "eten jan piet" de volgende onderwerpen zal vinden, en dan uiteraard binnen enkele milliseconden:
- eten jan-piet
- etentje jan piet
- RE: etentje janpiet
Wat ik heb geprobeerd is het onderwerp filteren zodat alleen kleine letters en cijfers overblijven. De bovenstaande onderwerpen zouden dan zo in de database staan:
- etenjanpiet
- etentjejanpiet
- reetentjejanpiet
Om vervolgens met ieder trefwoord in een LIKE QUERY door de onderwerpen te zoeken:
SELECT * FROM table WHERE indx LIKE %eten% AND indx LIKE %jan% AND indx LIKE %piet%;
Ik ben alleen bang dat dit traag gaat worden naarmate de database groter gaat worden.
Wat is in dit geval wijsheid qua indexeren en zoeken in de database?
Berichten worden overigens nooit geupdate, het is eenmalig inserten en daarna alleen zoeken.