Поддержка полнотекстового поиска в приложениях Java и PHP

Мое приложение построено на Java(версия 1.8) с каркасом hibernate 5.2 и PHP(версия 7.0) с каркасом laravel 5.2. Я хочу применить полнотекстовый поиск, например Elastic Search, TNTSearch, Laravel Scout.

Проблема:

В таблицы базы данных очень часто вставляются и обновляются оба приложения (Java и PHP). Но, согласно моей информации, любой алгоритм поиска работает, когда операция CRUD выполняется одним приложением (либо Java, либо PHP), так как я обнаружил эту проблему при попытке применить полнотекстовый поиск.

Я прав или нет?

Помогите мне, что мне делать в этом случае. Я ценю весь ответ.

Спасибо, впереди.

2 ответа

Вы должны перенаправить свои грубые операции в вашу поисковую систему, чтобы данные там совпадали с данными в вашей БД.

Тогда поиск - это совершенно другая операция, которая не будет включать вашу БД, а только поисковую систему, которую вы используете.

Что вам нужно, это слой между вашей базой данных и вашим приложением. Давайте назовем это слоем CRUD. Теперь слой CRUD будет REST API, написанным на PHP или Java, это ваш выбор. Слой CRUD будет отвечать за запись в базу данных и соответственно обновлять индекс полнотекстового поиска.

После того, как у вас есть этот слой, все ваши операции crud будут сначала попадать на этот слой, независимо от того, поступают ли запросы от Java, PHP или любого другого языка.

Другие вопросы по тегам