[lucene] lucene能不能在更新索引同时检索啊?
vreal
2009-05-21
想在web程序里使用lucene以提高检索速度。后台有专门的一个线程定期更新索引。但是前台的检索触发是无法控制的,万一在触发一个检索的时候正好后台在更新索引,会不会造成问题?
|
|
ppsddt
2009-05-21
可以 不过 IndexWriter 的Boolean参数要设置为false
|
|
luckaway
2009-05-22
没问题的。写索引时锁住目录,读索引时锁住文件。当有新的索引生成时,就会建新的索引文件,不会影响已经索引好的索引文件。 如果IndexReader不去 重新加载的话,新的索引就永远都搜索不到! 检测是否有新的索引如下:
if (!indexReader.isCurrent()) indexReader = indexReader.reopen(); 不过IndexWriter优化的时候,最好是把索引更新停掉! |
|
imjl
2009-05-22
1:复制一份作为production,另一份索引,不影响搜索,但是会影响机器性能
2:索引,搜索分离,分在两台不同机器 3:计算大概索引花费时间,将时间错开,比如凌晨 |