【问题标题】:How to import a part of index from main Solr server(based on a query) to another Solr server and then do incremental import later(the updated index)?如何将部分索引从主 Solr 服务器(基于查询)导入另一个 Solr 服务器,然后再进行增量导入(更新的索引)?
【发布时间】:2012-10-12 14:22:56
【问题描述】:

我有一个主 solr 服务器(solr1),它存储所有 doc 的索引,并希望实现以下功能:
1. 首先从 solr1 完全导入我最近(过去 1 或 2 周)更新/创建的文档。
2. 每隔一段时间进行增量导入,将我的文档的更改从 solr1 复制到 solr2。 - 在此期间可能会删除、更新、创建文档。

--作为SqlEntityProcessor支持的将数据从DB导入Solr的功能。

http://wiki.apache.org/solr/DataImportHandler#SolrEntityProcessor
SolrEntityProcessor 可以基于查询(使用配置文件中的查询参数)从一个 Solr 完全导入到另一个 solr,但以后似乎无法进行增量导入:没有 deltaImportQuery 和 deltaQuery 配置,这在 SqlEntityProcessor 中受支持。

如何实现这个功能?
感谢您的帮助和回复:)

【问题讨论】:

  • 谢谢,我查看了我所有的帖子(目前只有 5 个),更新它们并接受有助于解决问题的答案。
  • 不错,感谢您的努力!

标签: java solr solrj


【解决方案1】:

您应该能够通过使用可以模拟此的 Solr 字段和过滤查询来实现 deltaImportQuery 的等效项。

我建议在您的 Solr 架构中添加一个 timestamp 字段。下面是来自solr example schema 的字段定义。

   <field name="timestamp" type="date" indexed="true" stored="true" 
       default="NOW" multiValued="false"/>

这将创建一个记录上次将记录添加到 Solr 索引的字段,您可以在 SolrEntityProcessor 查询中添加过滤查询 fq 选项,以将结果限制为仅时间戳字段值为的项目大于或等于上次在过滤器查询中使用 DateMath 运行导入处理程序的时间。

以下是有关 DateMath 工作原理的一些很好的参考资料。

【讨论】:

  • 佩奇库克,感谢您的回复。我们确实有一个字段 last_modified 来记录创建或更新文档索引的时间戳。但是我如何才能获得上次运行导入处理程序的时间,使用 ${dataimporter.last_index_time} 作为 SqlEntityProcessor 中的示例?
  • 是 - 根据 - wiki.apache.org/solr/… "... 注意变量 ${dataimporter.last_index_time} DataImportHandler 公开了一个名为 last_index_time 的变量,它是一个时间戳值,表示最后一次完全导入'或' delta-import 已运行..."
  • 谢谢,Paige Cook,- 更清楚地描述我的问题:我有一个主 solr 服务器(solr1),它存储所有 doc 的索引,并希望实现以下功能: 1. 首先制作一个完整的从 solr1 导入我最近更新/创建的文档(过去 1 或 2 周)。 2. 每隔一段时间进行增量导入,将我的文档的更改从 solr1 复制到 solr2。 - 在此期间可能会删除、更新、创建文档。
  • 我们有一个字段 last_modified 记录文档创建或更新的时间戳。 Task1 可以轻松实现:mainsolr:8080/solr/"> 但是如何可以用 SolrEntityProcessor 实现 task2 吗?看来 SolrEntityProcessor 不支持“command=delta-import”。我如何使用 dataimporter.last_index_time?完全不知道。
  • 我正在尝试实现这个功能,完成后我会更新这个帖子:)
猜你喜欢
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多