Моя команда работает со сторонней CMS, которая использует Solr в качестве поискового индекса. Я заметил, что, похоже, авторы используют Solr в качестве базы данных, в которой каждый возвращаемый документ содержит два поля:
- Идентификатор документа Solr (в основном имя класса и идентификатор базы данных)
- XML-представление всего объекта
Таким образом, в основном он выполняет поиск в Solr, загружает XML-представление объекта, а затем создает экземпляр объекта из XML, а не ищет его в базе данных с помощью идентификатора.
Мое чувство кишки говорит мне, что это плохая практика. Solr - это поисковый индекс, а не база данных ... поэтому для меня имеет больше смысла выполнять наши сложные поиски в Solr, получать идентификаторы документов и затем извлекать соответствующие строки из базы данных.
Является ли текущая реализация совершенно обоснованной, или есть данные, подтверждающие идею о том, что она готова для рефакторинга?
РЕДАКТИРОВАТЬ: Когда я говорю «представление XML» - я имею в виду одно сохраненное поле, которое содержит строку XML всех свойств объекта, а не несколько сохраненных полей.