Миллионы строк автозаполнения поля - идеи реализации? - PullRequest
1 голос
/ 22 ноября 2010

У меня есть поле автозаполнения местоположения, в котором есть автозаполнение для всех стран, городов, районов, деревень, почтовых индексов. Это часть функции отслеживания местоположения, которую я создаю для своего веб-сайта. Таким образом, вы можете представить, что этот список будет в миллионах строк. Ожидается более 20 миллионов по крайней мере со всеми деревнями и кодами. Для правильной работы автозаполнения я буду использовать memcached, поэтому мы не всегда обращаемся к базе данных, чтобы получить этот список. Он будет использоваться часто, так как это основная функция на сайте. Но вопрос в следующем:

Является ли только 1 набор из списка, сохраненного в memcached, независимо от того, какие пользователи извлекают информацию, или для каждого из них требуется отдельный экземпляр? Так что, если, скажем, 20 миллионов человек используют его одновременно, будет ли это отличаться от того, что только 1 человек использует автозаполнение местоположения? Я также открыт для других идей о том, как реализовать автоматическое заполнение этого местоположения, чтобы оно работало хорошо.

Или я могу сделать что-то вроде этого: когда пользователь входит в фоновом режиме, я все равно отправляю ему список, так что к тому времени, когда он достигнет текстового поля с автозаполнением, его компьютер будет готов к немедленной загрузке?

1 Ответ

1 голос
/ 22 ноября 2010

Взгляните на Solr (или сам Lucene), используя токенизаторы NGram (или EdgeNGram), вы можете получить хорошую производительность автозаполнения для массивных наборов данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...