Val*_*era 6 mysql database indexing solr solrj
我是Solr的初学者,所以请耐心等待.:)
在我目前的项目中,我有一个非常简单的数据库 - 只有一个表包含4个字段:id,name,subject,msg.
我理解的方式是,每次添加(或删除)新记录时,我都需要将该记录添加到索引中,实际上执行两个操作:将记录插入数据库并将其添加到索引中.
这是标准程序,还是有办法指示Solr在某个时间间隔或有更新时自动重新索引数据库表?
此外,由于表格非常简单,将此信息存储在数据库中是否有意义?为什么不把它保留在Solr索引中,考虑到我希望记录可以通过名称,主题和消息进行搜索?
我的设置是Java,Hibernate,MySQL和Solrj.
使用数据库与否实际上归结为您希望保留和增长此数据的长期时间.破坏整个Solr索引(并丢失所有数据)比破坏整个数据库要容易得多.此外,Solr不支持在不使用新索引的情况下修改模式.例如,您可以添加另一个字段,但是如果不擦除索引,则无法更改字段的名称或类型.
如果您使用DB,则可以使用DataImportHandler将Solr设置为直接从DB 索引.对于您的架构,这应该非常简单,但随着您的数据库变得更加复杂,这会很快变得痛苦.我认为使用已经设置的Hibernate对象并使用Solrj插入它们有一些优势.DataImportHandler的另一个难点在于它完全由http控制.因此,您需要管理单独的cron作业(或其他一些代码)来使用wget或处理调度curl.