Solr - 转换数据库数据后索引数据

时间:2013-12-17 16:04:09

标签: solr lucene solrj

我在数据库中存储了大约3000万个唯一ID。 另外,我在本地计算机上定义了一些逻辑,它使用这些唯一ID来生成这些ID的描述。

使用Solr,我想索引描述并存储ID(这样当用户搜索描述关键字时,他将返回唯一ID)

我遇到了DataImportHandler,根据我的推断,我无法使用它,因为我需要在索引之前转换数据库中的数据。

另一个问题是我的数据库是单线程的,所以我不想长时间保持连接打开(因为那样会阻止其他用户的查询)。

我目前的方法是,我检索1000条记录,转换它们并使用SolrJ批量索引它们。这需要> 5小时来索引整个数据。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

关于使用DIH:我认为你可以做到,你有两个可能的地方进行转型:

  1. UpdateRequestProcessor:这允许您在索引之前转换文档,无论它来自solr。请参阅here
  2. 在DIH中使用ScriptTransformer,您可以使用各种脚本语言来转换数据。
  3. 关于没有阻止你的其他用户db ...这听起来有问题,我想你可以创建第二个数据库服务器作为solr源(如果它有本机复制更容易)?