我有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将两个表分开索引。 是否可以使用两个索引的组合来检索数据。
哪个最好?索引分离或索引为单个? 注意:我的数据库中的数据不会更新。我只需要最好的方式。
答案 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。