Мое приложение построено на Java (версия 1.8) с каркасом hibernate 5.2 а также PHP (версия 7.0) с фреймворком laravel 5.2.
Я хочу применить полнотекстовый поиск как Эластичный поиск, TNTSearch, Laravel Scout.
Проблема:
В таблицы базы данных очень часто вставляются и обновляются оба приложения (Java и PHP). Но, согласно моей информации, любой алгоритм поиска работает, когда операция CRUD выполняется одним приложением (либо Java, либо PHP), так как я обнаружил эту проблему при попытке применить полнотекстовый поиск.
Я прав или нет?
Помогите мне, что мне делать в этом случае. Я ценю весь ответ.
Спасибо, впереди.
Вы должны перенаправить свои грубые операции в вашу поисковую систему, чтобы данные там совпадали с данными в вашей БД.
Тогда поиск — это совершенно другая операция, которая не будет включать вашу БД, а только поисковую систему, которую вы используете.
Что вам нужно, это слой между вашей базой данных и вашим приложением. Давайте назовем это слоем CRUD. Теперь слой CRUD будет REST API, написанным на PHP или Java, это ваш выбор. Слой CRUD будет отвечать за запись в базу данных и соответственно обновлять индекс полнотекстового поиска.
После того, как у вас есть этот слой, все ваши операции crud сначала попадут на этот слой, независимо от того, поступают ли запросы от Java, PHP или любого другого языка.