题
在我的项目中,我们使用分类:设2.4.1用于全文搜索。这是一个J2EE项目,IndexSearcher是创建一次。在该背景,该指数是以刷新,每隔几分钟(当的内容的变化)。用户可检索的索引,通过一个搜索机制的网页。
问题是,返回的结果分类:设似乎是缓存。
这是方案中,我注意到:
- 我开始应用和搜索的"关键字"-6结果返回,
- 指数是刷新,使用 卢克 我看看,有8个结果现在就查询的"关键字",
- 我再次搜索中使用的应用程序,再次6返回的结果。
我分析了我们的结构并没有发现任何缓存在任何地方。我已经试搜索,并没有缓存在出代码, searcher.search
returnes6的结果。
不分类:设缓的结果境内某种方式?什么是性等。我应该检查?
解决方案
看到改变由IndexWriters对一个指数为你有一个开放的IndexReader,一定要叫 IndexReader.重新开放() 看看最新的变化。
确定还你 IndexWriter 是承诺的变化,无论是通过明确的承诺()、close(),或具有自动提交设定为真实的。
其他提示
与以前的版本2.9.0,分类:设缓存的自动结果的查询。与以后的版本没有缓除非你把你的查询在QueryFilter然后包裹的结果在CachingWrapperFilter.你可以考虑换到释放>=2.9.0如果重新开放索引成为一个问题
一个更加注意:为了IndexReader找到实时的其他线更新的文件,在初始化IndexReader,参数"只读"已经是假的。否则,方法重新打开()不会的工作。
不隶属于 StackOverflow