Поддержка полнотекстового поиска в приложениях 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 или любого другого языка.