Блог о разработке ПО | Amigos Team
Разработчикам постоянно приходится запрашивать открытие портов, настраивать и проверять сетевые соединения.
Перечислим ряд полезных утилит для этих задач.
Lucene индексация больших объемов данных, хранящихся в БД Oracle
В статье будут рассмотрены особенности решения задачи полнотекстовой индексации больших объемов данных, хранящихся в БД, на примере связки Apache Lucene и СУБД Oracle.
Задача
Необходимо создать полнотекстовый индекс для сквозного поиска по данным, хранящимся в различных таблицах БД. В качестве поискового движка используется Apache Lucene, в качестве СУБД - Oracle. Совокупное количество записей в БД превышает несколько миллионов.
1. Предисловие
Толчком к написанию данной статьи стало появление назойливого сбоя в работе приложения.Признаки сбоя заключались в следующем:
- временами при обращении к веб-приложению запрос подвисал на неопределенный промежуток времени, потом все начинало работать нормально до следующего зависания;
- в логе сервера приложений временами проскакивала следующая ошибка:
Для этого изучим официальную документацию и тезисно изложим самое главное.
Следуя приведенным тезисам в последствии будем проводить эксперименты и подбирать подходящее именно нам решение.
При переходе к кластерной архитектуре мы сталкиваемся с набором потенциально узких мест и от принятного решения будет зависеть эффективность всей архитектуры в принципе.
Рассмотрим каждую из проблемных зон в отдельности.
Заголовок Content-Disposition вместе с директивой attachment помогают заставить браузер скачивать файл по ссылке, вместо его отображения. Параметр filename позволяет задать для приложенного файла свое имя. В документе RFC 2183, который описывает использование этого заголовка, ссылающемся в свою очередь на RFC 2045, для значений параметров разрешено использовать только US-ASCII символы. Это означает, что мы не можем задать имя файла, как параметр, например, с использование символов кириллицы. Практика показывает, что современные браузеры умеют корректно обрабатывать этот параметр и с символами, находящимися за пределами US-ASCII таблицы.