将数据库中的元数据添加到Nutch创建的Solr Index中

时间:2014-01-22 23:02:42

标签: solr nutch solr4

我有一个需要在Solr中搜索的定制CMS。目前,我正在使用Nutch根据从CMS本身生成的种子列表来抓取页面。

我需要能够将存储在CMS数据库中的元数据添加到Solr中索引的文档中。所以,这里的想法是通过Nutch抓取页面文本(由CMS生成的html),并将元数据添加到Solr文档中,其中唯一ID(在本例中为URL)是相同的。

因此,来自数据库的元数据可用于构面/过滤等,而全文搜索和排名则通过Nutch添加的文档处理。

这种模式可能吗?在Nutch将其添加到Solr后,有没有办法更新CMS DB中预期的字段?

1 个答案:

答案 0 :(得分:0)

只要存储了所有文档字段,Solr就能够部分更新文档。见this。这样,您可以为文档定义多个字段,这些字段最初不是由nutch填充的,但是在将文档添加到solr by nutch之后,您可以使用数据库值更新这些字段。

尽管如此,我认为还有一个重大问题需要解决。每当nutch重新抓取一个页面时,它都会在solr中更新整个文档,因此错过了更新的字段。即使在第一次,你必须确保nutch首先添加文档,然后更新字段。为了解决这个问题,我认为你需要为nutch编写一个插件或者为solr编写一个特殊的请求处理程序,以便知道何时发生更新。