Използването на база данни или не се свежда до това колко дългосрочно искате да запазите и разширите тези данни. Много, много по-лесно е да повредите цял индекс на Solr (и да загубите всичките си данни), отколкото да повредите цяла база данни. Също така, Solr няма голяма поддръжка за промяна на схема без започване с нов индекс. Например, можете да добавите друго поле съвсем добре, но не можете да промените името или типа на поле, без да изтриете индекса си.
Ако използвате DB, можете да настроите Solr да индексира директно от DB, като използвате DataImportHandler . За вашата схема това трябва да е доста просто, но това може да стане болезнено бързо, тъй като вашата БД става по-сложна. Мисля, че има някакво предимство да използвате обектите на Hibernate, които вече сте настроили, и просто да ги вмъкнете с помощта на Solrj. Другата болезнена точка с DataImportHandler е, че той се контролира напълно с помощта на http. Така че трябва да управлявате отделни задачи на cron (или някакъв друг код), за да управлявате планирането с помощта на wget
или curl
.