2014-11-07 2 views
0

Я хочу построить сервлет, который получает строку поиска и возвращает все возможные совпадения (точно так же, как поиск Google). Однако в моем случае у меня нет большого количества данных - всего около 100 000 строк для сопоставления с запросом. Мои вопросы: какой DB рекомендуется для этого, какой кеш нужен для времени ответа mininml? Кстати, мой клиент - GWT.Реализация автоматического предложения backend в java, должно быть быстро

Мое общее предположение состоит в том, что необходим некоторый кеш - например, чтение всех данных в ОЗУ вместо обращения к БД каждый раз. Мне нужно быстрое время отклика - точно так же, как в поиске Google (в моем случае это проще, у меня нет слишком большого количества информации для индексации).

+0

Возможно, вы захотите использовать Apache Solr. Смотрите их edgeNGramFilter. PostgreSQL поддержка базы данных префикс подстановочного полнотекстового поиска, который тоже будет полезен –

+0

Спасибо solr/lucene выглядит хорошо. спасибо – James

ответ

0

Если вы хотите кэш в ОЗУ для более быстрого времени отклика, я предлагаю попробовать Redis. Redis имеет команду ZRANGEBYLEX специально для автозаполнения. Это довольно быстро. Они выставили демо-версию на http://autocomplete.redis.io/ (выключено прямо сейчас).

+0

Мои данные охарактеризованы так, что нет-sql не для меня, спасибо – James

 Смежные вопросы

  • Нет связанных вопросов^_^