Pro для решения только для базы данных:
- Меньше настройки и обслуживания (у вас уже есть база данных)
- Если вы хотите объединить результаты поиска с другими данными или иным образом манипулировать ими, вы сможете сделать это в базе данных
- Не будет временной задержки (если вы периодически синхронизируете Solr с вашей базой данных) или процедуры обслуживания (если вы решите добавлять / обновлять записи в Solr в режиме реального времени везде, где вы вставляете их в базу данных)
Преимущества решения Solr:
- Производительность: Solr обрабатывает кэширование и работает быстро из коробки
- Проверка орфографии - если вы планируете делать что-то типа проверки орфографии, Solr обрабатывает это изначально
- Установка и настройка Solr не очень болезненны, хотя это помогает, если вы знакомы с серверами приложений Java
- Несмотря на то, что у вас, кажется, есть простые требования, я думаю, у вас есть какая-то логика поиска слов; Solr делает это очень хорошо
Возможно, вы также захотите учесть будущие требования (что если в ваших документах окажется больше, чем просто поле заголовка, и вы захотите присвоить какую-то релевантность? Что если вы решите позволить людям искать основной текст этих сущностей?) и / или вы хотите индексировать другие типы документов, такие как MS Word? Что делать, если вы хотите получить результаты поиска в фасете? Solr хорош во всех этих случаях.
Я не уверен, нужно ли вам создавать запись для каждого слова в вашей базе данных вместо простого поиска "% [query_word]%", если вы все равно собираетесь создавать записи с каждым словом. Для начала может быть проще просто использовать базу данных, поскольку требования кажутся довольно простыми. Должно быть достаточно легко масштабировать производительность базы данных.
Я могу сказать вам, что мы используем Solr на месте, и нам нравится производительность, и мы используем ее даже для очень простых поисков. Однако нам не хватает одного способа объединить данные Solr с данными базы данных. И есть дополнительное обслуживание. В конце дня нет простого ответа.