У меня есть приложение heldesk на PHP / MySQL.Я хочу реализовать в режиме реального времени полнотекстовый поиск, и я вошел в короткий список Solr.В базе данных MySQL будут храниться все данные, а данные, необходимые для поиска, будут импортированы для построения индекса Solr.Все поисковые запросы будут обрабатываться Solr.
То, что я хочу, это
- Поиск в реальном времени.В тот момент, когда кто-то обновляет билет, он должен быть доступен для поиска.
- Если несколько человек обновляют билет одновременно, Solr должен иметь возможность обрабатывать коммиты
Согласно моему пониманиюSolr, вот как я думаю, что система будет работать.Пользователь обновляет тикет -> соответствующие записи базы данных изменены -> на сервер Solr отправляется запрос на изменение соответствующего документа в индексе.
Я прочитал книгу о Solr, и следующие вопросы меня беспокоят.
В книге упоминается, что коммиты
"медленные в Solr. В зависимости от размера индекса, конфигурации автоподогрева Solr и состояния кэша Solr дофиксация, фиксация может занять нетривиальное количество времени. Как правило, это занимает несколько секунд, но в некоторых случаях это может занять несколько минут "
Если это так, то какЯ знаю, когда данные будут доступны для поиска и как я могу реализовать поиск в реальном времени?Даже если это займет несколько секунд, это не может быть в режиме реального времени.Также я не хочу, чтобы операция обновления билета была замедлена (добавив дополнительный шаг обновления индекса Solr)
Также упоминается, что
«отсутствует изоляция транзакции. Это означает, что если более одного клиента Solr должны были отправить изменения и зафиксировать их в перекрывающееся время, возможно, что часть набора изменений одного клиента будет зафиксирована до того, как этот клиент скажет Solr о фиксации.относится и к откату. Если это проблема для вашей архитектуры, рассмотрите возможность использования одного клиентского процесса, ответственного за обновление Solr. "
Это означает, что это из-за отсутствияТранзакционные коммиты, Solr может испортить, если несколько человек одновременно обновят тикет?
Теперь передо мной встает вопрос: могу ли я достичь двух с помощью Solr?Если да, то как?
Edit1: Да!Я пришел на пару похожих вопросов, но ни на один не получил удовлетворительного ответа.Так что постить снова.Извините, если найдете дубликат.