- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对使用 Lucene 版本 3.6.1 的现有代码库进行一些更改。
IndexSearcher 已针对每个搜索请求进行实例化。
IndexReader reader = IndexReader.open(index);
IndexSearcher searcher = new IndexSearcher(reader);
已使用 RAMDirectory
并且 close方法尚未调用。
发生这种情况时,会定期重新索引并创建 RAMDirectory 的新实例。但现有的IndexReader#close方法还没有被调用。
以下是我的问题。
最佳答案
问> 不调用 IndexReader 的 close 方法有什么影响?
A> 对于基于文件系统的索引,您可能会运行文件描述符。但如果所有 IndexSearcher
和 IndexReader
都成为 GCable,那么这应该不是什么大问题。也就是说,如果您不关心偶尔的内存峰值,但这取决于您的使用模式。
问> 不调用 RAMDirectory 的 close 方法有什么影响?
A> 内部 map 不会被清除。同样,如果您丢弃 RAMDirectory 实例并重新创建它,也没什么大不了的。但我仍然会关闭它以避免隐秘的错误并可能帮助 GC。
问> 对索引阅读器的引用没有保存在任何地方。那么为了关闭它,我可以执行 IndexSearcher.getIndexReader().close() 吗?
A> 是的,IndexSearcher
创建后,它始终保留对原始 IndexReader
的引用,可以使用上述方法访问该原始 IndexReader
。
问>是否有类似的方法来访问目录,以便我可以在重新索引发生时将其关闭?
A> 不。您应该保留此引用。
关于java - 有关 IndexSearcher/IndexReader 和 Directory 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27918276/
根据 http://wiki.apache.org/lucene-java/LuceneFAQ#Is_the_IndexSearcher_thread-safe.3F IndexSearcher 是线
我在 .net Web 应用程序中使用 Lucene API。我想对所有请求使用相同的 Indexsearcher 实例。因此,我将 Indexsearcher 实例存储在 http 缓存中。 这是我
我从阅读可用文档中了解到,应该在搜索之间共享 IndexSearcher 实例,以获得最佳性能,并且必须创建一个新实例才能加载对索引所做的任何更改。这意味着在创建指向同一目录的 IndexSearch
给定一个 Lucene Query 查询,我可以通过调用以下内容来获得结果和评分的解释: TopDocs results = searcher.search(query, 10); ScoreDoc[
我正在使用 Lucene 的 contrib/demo 目录中的 SearchFiles 类。我不想以分页形式搜索结果,而是希望检索与查询匹配的所有文档。有没有办法用现有的 API (3.4) 来做到
我收到以下错误消息java.lang.UnsupportedOperationException 使用Lucene搜索方法:topDocs = searcher.search(booleanQuery
我最近开始使用 Lucene.NET,但遇到了一些问题:我使用了 IndexWriter 来索引我在 C:\\TestIndex 中的文档,我猜是这样工作因为它生成了几个 .fnm, .frq, .c
在 Web 应用程序中,我为整个应用程序设置了一个 IndexReader 和一个相应的 IndexSearcher。 文档说它们是线程安全的,所以没关系,但是如果底层索引发生变化(例如 IndexW
我是 Lucene.net 新手,正在努力适应 search code from here这实际上在每个方法中创建了一个新的 Analyzer、IndexSearcher 和 IndexWriter
我有一个非常大的数据库(大约 3000 万条记录,每条记录至少有 26 个字段),我已使用 Apache Lucene Java 为其建立了索引。 我正在从两个字段构造一个查询。每个搜索词都可以出现在
我希望能够在 Lucene.Net 中同时进行多个客户端搜索和索引 是否可能且线程安全? 同一个 IndexSearcher 实例可以跨线程共享吗? 最佳答案 索引搜索可以并且应该跨线程共享。 诀
我正在对使用 Lucene 版本 3.6.1 的现有代码库进行一些更改。 IndexSearcher 已针对每个搜索请求进行实例化。 IndexReader reader = IndexReader
我的 Lucene 索引约为 9 Mio。文档时,使用 BooleanQuery 进行查询,该 boolean 查询由多个 TermQueries 组合而成(组合为 AND)。非常基本。我的搜索通常会
当我尝试创建 new IndexSearcher(fsDir) 类的对象时,它抛出 IOException read past EOF。搜索索引不是基于 RAM,而是基于 NFS(使用 FSDirec
在 Lucene 文档中指出,在整个应用程序中使用 IndexWriter 和 IndexSearcher 的一个实例是最快的。 目前我有一个 IndexWriter 的静态实例一直打开,还有一个 I
我正在使用 Lucene.net 3.0.3.0 (现在是最新版本)。我想知道是否使用 的单个实例IndexWriter 和 索引搜索器 在生产环境中是一个不错的选择(考虑线程安全)。我在文档中读到创
上下文: 辅助外观类正在为我的应用程序提供搜索方法。由于性能不是问题,因此会为每个查询创建一个新的 IndexSearcher。 对于每个查询,都会创建一个新的搜索器,如下所示: File index
我即将编写一个具有分布式索引的近实时搜索应用程序。现在我想知道在多个索引上实现搜索的正确方法是什么: 我已经阅读了有关 MultiSearcher 的信息,所以一种方法是: IndexSearcher
Lucene 文档指出 IndexSearcher 和 IndexWriter 的单个实例应该用于整个应用程序中的每个索引,并跨所有线程。此外,在重新打开索引之前,对索引的写入将不可见。 因此,我尝试
我想使用 Lucene 索引(版本 4.3.1)查找查询的总命中次数。 我明白我必须使用 https://lucene.apache.org/core/5_3_0/core/org/apache/lu
我是一名优秀的程序员,十分优秀!