我正在使用nutch将一些页面抓取到solr索引中。为了指定读取的文档,我在"read_flag"
中添加了一个名为"schema.xml"
的布尔值,默认值为false。当应用程序用户读取文档时,它将发送solr更新查询以设置solr索引并将read_flag
设置为true
。在应用程序端,我用户solr查询其"read_flag"
为false的所有文档,以查看尚未读取的所有文档。我还将url定义为uniquekey,因此如果发现其url是重复的,Solr将覆盖新文档。我的问题是当新文档被发送到solr以进行索引时,其read_flag将为false,这将被覆盖以解析可能具有read_flag=true
的现有文档!我正在考虑一些解决方案,但所有这些都有一些性能成本。
1)用于不同的文件,一个用于read_flag,另一个用于其他部分。用户solr加入查询时间。问题是我无法以这种方式使用solrCloud和多分片!
2)更改Nutch以发送更新查询,而不是为每个新文档添加查询。在这种方法中,索引的性能可能会降低。由于这不适用于首次插入的文件,可能是不可行的解决方案。
3)更改solr代码以错过某些字段以覆盖重复的唯一键。
4)在nutch中使用solrj读取文档read_flag
值并将其发送给具有此read_flag
值的索引。
我的问题是哪种方法最适合我的情况?我怎么能这样做?
Rgards。