Я думаю, что Hibernate Search может идеально подойти для вашей задачи, потому что он позволяет вам строить / сохранять индекс в файловой системе. Таким образом, база данных остается нетронутой. Учитывая, что вы уже используете JPA, включить Hibernate Search очень просто. Вам просто нужно получить jar-файл Hibernate Search и добавить его в свой проект, затем аннотировать сущности, которые вы хотите проиндексировать, с помощью @Indexed, а поля, которые вы хотите проиндексировать, с помощью @Field. Конечно, это очень просто, но онлайн-документация должна помочь вам. Есть раздел, посвященный началу работы, который объясняет основы. Получив это, вы можете глубже погрузиться в разные анализаторы и т. Д. - http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/
Я пытаюсь понять, поможет ли мне в этом Hibernate Search, и
как я мог пойти об этом. Я думаю, что это не может вызвать документацию говорит
он строит индекс при обновлении сущностей (которые никогда
дело в моем WebService). Но я новичок во всей его терминологии, поэтому я
может неправильно истолковывать вещи.
Что ж, Search поможет вам с помощью автоматических обновлений индекса, чтобы синхронизировать ваш индекс и базу данных для приложения чтения / записи. Тем не менее, Search также имеет программный API для создания начального индекса или перестроения индекса вручную, когда вы считаете нужным. Есть несколько способов сделать это, но это может быть так просто, как:
EntityManager em = entityManagerFactory.createEntityManager();
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em);
fullTextEntityManager.createIndexer().startAndWait();
Опять же, в документации есть больше примеров. Я рекомендую вам следовать примерам начала и задавать конкретные вопросы / проблемы, с которыми вы сталкиваетесь.