lucene使用多个表索引大型数据库

时间:2014-04-21 18:36:38

标签: lucene lucene.net

我有2个表,这1个表中有大量数据(15gb)的网站文本(不是html)内容。我想索引这10个表(有关系船)。 例如:从table1 a,table2 b中选择a.id,a.title,a.ipaddress,b.content,其中a.id = b.id;

这里的问题是从oracle数据库中检索数据需要70-80小时才能进行索引。我尝试了服务器端分页,例如rownum> 1和< 20000并且每次都增加。但仍然需要花费大量时间,因为我正在重新获取clob数据。 因此,如果我使用单独的C:\ index1,table2 C:\ index2将两个表分开索引。 是否可以使用两个索引的组合来检索数据。

哪个最好?索引分离或索引为单个? 注意:我的数据库中的数据不会更新。我只需要最好的方式。

1 个答案:

答案 0 :(得分:1)

  

是否可以使用两个索引的组合来检索数据。

是的,可以从两个索引中检索数据。

为每个索引打开一个IndexReaders。称他们为reader1和reader2。然后,您可以使用MultiReader来阅读索引并附加内容。

MultiReader multiReader = new MultiReader(reader1, reader2); IndexSearcher searcher = new IndexSearcher(multiReader);

参考:How to perform search over independent index sets and merge results?

  

哪个最好?索引分离或索引为单个?注意:我的数据库中的数据不会更新。我只需要最好的方式。

由于数据库中的数据不会改变,我建议您使用单个索引。

另外,您可能需要查看How to make indexing faster