Ну, конечно, чистое решение javascript должно будет загрузить все контакты, чтобы отфильтровать их ... Javascript находится на стороне клиента.
Что вам нужно сделать, так это исследовать методы страницы и заставить свой javascript вызывать метод страницы, передавая в точности то, что было набрано до этого момента. Затем ваш метод страницы должен выполнить вызов select для базы данных, чтобы получить первые N записей, которые начинаются с того, что было напечатано. Хорошее значение для N, вероятно, 10.
Кроме того, вам, вероятно, нужно, чтобы ваш javascript не выполнял вызов, пока не будет набрано хотя бы несколько символов; что-то вроде 3 или 4 обычно хорошо.