在Lucene.Net中的多个表中索引数百万条记录

时间:2018-09-20 10:52:47

标签: c# sql sql-server lucene lucene.net

我们无法将数据库中的记录索引到Lucene Index中。这是我们目前的情况。

我们需要索引数据库中多个表的数据。它们全都以1到n的关系与外键连接。我们希望建立索引的Full Record是这些表中数据的组合。问题是,我们在数据库中有数千万条记录。我们的方法:

  1. 使用LEFT JOIN查询选择所有记录,然后使用
IndexWriter.AddDocument(IEnumerable<IIndexableField> doc)

将一批记录添加到我们的索引中的方法。这仅适用于一个表,当我们联接多个表时,在连接数据库时会收到超时,而管理员告诉我们,我们正在用查询杀死服务器。我们所有的联接都指定了键,在这里我们无能为力-在单个查询中加载的数据太多。

  1. 一次选择一个表的数据。也可以,但是我们要么以多个索引结尾(每个索引仅包含所需数据的一部分),要么一个索引包含多个“不完整”记录。如果我们不插入多个不完整的记录,请尝试更新现有记录:
IndexWriter.UpdateDocument(Term term, IEnumerable<IIndexableField> doc)

花费太多时间。在这种情况下,更新确实很慢。

问题是,从包含数百万条记录的多个表中索引数据的最佳方法是什么?

0 个答案:

没有答案