Возможно, я создаю приложение Java-сервлета, которое необходимо интегрировать с очень простым индексом Lucene.Индекс будет доступен для поиска только по одному полю, и затем я хочу отправить результаты обратно, возможно, в виде XML, может быть, в формате JSON, но на данный момент это не имеет значения.Главное, что сам индекс не является проблемой.
Мой вопрос заключается в том, как эти два должны быть интегрированы.Я склонен к программному доступу к индексу из приложения сервлета, и поэтому я бы запустил его и сохранил в ServletContextListener.Затем я мог бы построить довольно простую консоль для включения и выключения службы поиска.У меня также может быть одно приложение, которое будет обрабатывать запросы, а также периодически перестраивать индекс, а затем заменять новое, заменяя старое.Одна потенциальная проблема, которая возникает, заключается в том, как заставить сервлет вести себя и немного подождать, если / когда индекс будет заменен.Это должно занять меньше секунды, и я мог бы сделать это в 2 часа ночи, но я все же хотел бы, чтобы это было как можно более пуленепробиваемым.Если сервлет отправляет запрос в службу и должен подождать, какой таймаут используется?Где / как мне это контролировать?
Другие возможности - запустить индекс как отдельное приложение Java или запустить его в отдельном приложении с сервлетами, и позволить первому приложению выполнять http-вызовы через сервлет.,Я не вижу большой пользы в последнем подходе, он просто добавляет больше кода, который на самом деле не служит какой-либо цели.Не было бы никаких оснований для прямого доступа к поисковым запросам по HTTP.
Что вы думаете?Я ценю любой вклад от кого-то опытного в этом направлении.