有時對於一個Document來說,有一些Field會被頻繁地操作,而另一些Field則不會。這時可以將頻繁操作的Field和其他Field分開存放,而在搜索時同時檢索這兩部分Field而提取出一個完整的Document。
這要求兩個索引包含的Document的數量必須相同。
在創建索引的時候,可以同時創建多個IndexWriter,將一個Document根據需要拆分成多個包含部分Field的Document,並將這些Document分別添加到不同的索引。
而在搜索時,則必須藉助ParallelReader類來整合。
Directory dir1=FSDirectory.getDirectory(new File(INDEX_DIR1),false);
Directory dir2=FSDirectory.getDirectory(new File(INDEX_DIR2),false);
ParallelReader preader=new ParallelReader();
preader.add(IndexReader.open(dir1));
preader.add(IndexReader.open(dir2));
IndexSearcher searcher=new IndexSearcher(preader);
之後的操作和一般的搜索相同。