实时建立索引一直是我思考的问题,虽然现在这个问题还没有圆满解决,但是我总结出了一些注意事项,现在先记录下来!
第一,确保IndexWriter只有一个,建议做一个静态的IndexWriter,只有一个路径去打开和关闭!
第二,确保只有一条线程去建立索引,因为lucene的索引文件带有自定义的锁文件,如果有多条线程去修改索引会出现异常!
第三,确保定时去优化索引文件,建议晚上2点到4点去优化,在优化的时候是不能建立索引的,但是2点到4点的访问量应该是较低的,所以应该是没有问题的。如果不优化索引,等到索引库很庞大之后优化的时间就会更长,需要的空间和内存更多。
第四,确保可以关闭IndexWriter,否则下次将无法打开索引文件,ps:虽然可以通过删除*.lock文件重新打开,但是不保证索引文件是否已经损坏了。