Ух ты, много догадок! Надеюсь, я не слишком мутлю воду, не догадываясь.
Ящик для автозаполнения в основном работает на Freebase Suggest , который, в свою очередь, работает на сервисе Freebase Search . Строки, которые индексируются поисковой службой для поиска соответствия, включают в себя: 1) имя, 2) все псевдонимы на данном языке, 3) текст ссылки на якорь из соответствующих статей Википедии и 4) идентификаторы (называемые ключами в Freebase), которые включают в себя элементы как заголовки статей в Википедии (и перенаправления).
Как различные вещи взвешены / усилены, не было раскрыто, но вы можете почувствовать вещи, поиграв с ними некоторое время. Как вы можете видеть из API, есть также возможность выполнять фильтрацию / взвешивание по типам и другим критериям, и это может вступать в действие в зависимости от контекста. Например, если вы добавляете метку записи в альбом, темы, которые печатаются как метки записи, получат ускорение по сравнению с тем, чего нет (но вы все равно можете перейти к вещам других типов, чтобы учесть вариант использования где к целевой теме еще не применен соответствующий тип).
Так что это дает вам небольшое представление о том, как работает их служба, но почему бы не создать службу поиска, которая делает то, что вам нужно, поскольку вы все равно начинаете с нуля?
Кстати, перед Google поисковая реализация Metaweb была основана на топе Lucene, так что вы можете определенно добиться большего, чем использовать это в качестве отправной точки. Некоторые подробности можно прочитать в архиве списка рассылки