1.可以通过配置参数对合并因子进行合理设置。参数大致分配原则:
/**
* MergePolicy 设置合并规则...
*
*
*/
LogDocMergePolicy mergePolicy=new LogDocMergePolicy();
/**
*
* 1:mergeFactor
*
* 当这个值越小,更少的内存被运用在创建索引的时候,搜索的时候越快,创建索引的时候越慢..
*
* 当这个值越大,更多的内存被运用在创建索引的时候,搜索的时候越慢,创建的时候越快...
*
*
* smaller value 2 < smaller value <10
*
*/
//设置索引的合并因子...
mergePolicy.setMergeFactor(6);
conf.setMergePolicy(mergePolicy);
IndexWriter indexWriter=new IndexWriter(directory, conf);
根据测试确定最佳方案。
2.排除停用词,排除停用,被分词器过滤掉,词就不会建立索引,索引文件就会变小,这样搜索的时候就会变快...
3.使用索引内存加载机制
其实我们获取indexreader对象应使用单例模式:
此种优化方式大家很容易想到,内存中数据肯定比磁盘数据执行效率更高。
4.使用luence查询策略,具体可以参见API