IndexReader indexReader = indexSearch.getIndexReader();//获取当前的indexReader
if(!indexReader.isCurrent()){//判断是否有索引更新
indexSearch.close();
indexSearch = new IndexSearcher(directory, true);
}
JAVA lucene 高并发问题
大数据量搜索,使用lucene可以缓解数据库压力,但在lucene存储文档过大、并发量高、索引更新频率过快的情况下,lucene搜索会出现“句柄无效”的情况,随着lucene存储文档的不断增大,出错的频率会越高。
控制索引更新频率,判断索引是否有更新,再创建indexSearch可以缓解读取频率,解决并发问题。