Autocomplete grote dataset
Ik ben bezig met een website waarop ik handleidingen aanbied over audio apparatuur. Waar ik nu aan ga werken is een zoekfunctie waarbij de gebruiker door middel van een invoerveld snel op een merk of model pagina uit kan komen. Hiervoor maak ik gebruik van Autocomplete van Jquery UI; deze verwacht een Array met mogelijke autocomplete resultaten welke doorzocht worden bij elke toetsaanslag in een invoerveld. Ik heb een testpagina aangemaakt met een voorbeeld waarbij de resultaten hardcoded zijn.
http://hifi-manuals.stevezeeuwe.com/test.php
Wanneer de gebruiker een resultaat selecteert of uittypt en op enter drukt, dan wordt de gebruiker naar desbetreffende pagina gebracht (dit werkt niet op de testpagina).
Ik heb momenteel 43,594 modellen verspreid over 789 merken wat neer komt op 44.383 resultaten, maar ik verwacht dat dit er nog enkele duizenden meer zullen worden. Mijn vraag is nu hoe ik dit het beste aan kan pakken. Mijn idee is om eerst te kijken hoe snel deze functie blijft op het moment dat ik al deze resultaten in de source array zet. Daarna wil ik kijken of ik dit kan verbeteren door bij iedere toetsaanslag een specifieke query te gebruiken om de resultaten op de server al te filteren, om zodoende de source array kleiner te houden.
Hebben jullie nog tips, of een andere (betere) manier waarop ik dit aan kan pakken?
Met vriendelijke groet,
Steve
Ik zat meer te denken aan een AJAX-request, die na drie á vier tekens geactiveerd wordt.
Bedankt voor je reactie Aar. Dat is inderdaad wat ik bedoelde met een specifieke query gebruiken om op de server al te filteren, maar dan zou ik het bij deze dataset al na iedere toetsaanslag willen doen (vaak is het zo dat de resultaten veel op elkaar lijken).
Als je na drie tekens activeert, kun je vervolgens bij ieder extra teken een nieuwe query doen. Zo voorkom je hele grote lijsten met resultaten.