- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个创建成本很高的线程安全对象,需要通过我的应用程序(Lucene.Net IndexReader)使用。
对象可能会变得无效,此时我需要重新创建它(IndexReader.IsCurrent 为假,需要使用 IndexReader.Reopen 的新实例)。
我希望能够使用 IoC 容器 (StructureMap) 来管理对象的创建,但我不知道这种情况是否可行。感觉像是某种“条件单例”生命周期。
StructureMap 是否提供这样的功能?还有其他建议吗?
最佳答案
我可能会使用 PerRequest
的范围,而不是直接返回 IndexReader
。相反,我将返回 IndexReader
的抽象,它将对类级别上的静态引用执行检查。
然后,当您访问 shim/proxy/abstraction 上的属性时,它会检查静态引用(当然,您会使其成为线程安全的)并重新获取 IndexReader
如果在将其返回给用户之前需要。
关于c# - Lucene.Net IndexReader 的 StructureMap 'conditional singleton',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948569/
我的问题很简单,当用IndexReader.openIfChanged(reader)替换掉之前的reader时,如何安全的关闭oldReader? 代码如下:(使用 Lucene 3.5) Inde
故事是这样的。我想在java中使用Lucene索引来模仿关系数据库的行为。我需要能够同时进行搜索(阅读)和写作。 例如,我想将项目信息保存到索引中。为简单起见,假设该项目有 2 个字段 - id 和
我有一个方法可以从我的 Lucene 索引中搜索和删除文档。 但是,当我运行代码两次时,它仍然找到标记为从上一次迭代中删除的文档,并且 indexReader.hasDeletions() 计算结果为
我正在尝试将我的应用程序中的 Lucene 从版本 3.5.0 升级到 5.0.0。该应用程序具有以下代码: IndexReader indexReader=IndexReader.open(inde
我正在尝试使用部分匹配来获取多短语查询。根据 MultiPhraseQuery 的 JavaDoc: A generalized version of PhraseQuery, with the po
我们正在从 Lucene 3.3.0 升级到 Lucene 4.2.1,但我似乎找不到旧 IndexReader.getFieldNames 方法的替代方法。谷歌搜索显示this ticket其中谈到
我的Lucene 2.4有问题,情况如下: 我必须处理有 2 个独立进程在同一个索引目录上运行并且它们需要具有相同数据的可能性。这意味着当一个实例将文档添加到索引时,其他应用程序实例将在下一次搜索时找
在 Lucene 4.7.1 中,方法 IndexReader.lastModified() 已经被删除(不久前它刚刚被弃用)。lastModified 的当前等价物是什么? 最佳答案 首先,如果您试
在 Web 应用程序中,我为整个应用程序设置了一个 IndexReader 和一个相应的 IndexSearcher。 文档说它们是线程安全的,所以没关系,但是如果底层索引发生变化(例如 IndexW
调用前AddDocument()在 IndexWriter , 我打电话可以吗 IndexReader.IsLocked(myDirectory) 如果它返回true,则调用 IndexReader.
我正在对使用 Lucene 版本 3.6.1 的现有代码库进行一些更改。 IndexSearcher 已针对每个搜索请求进行实例化。 IndexReader reader = IndexReader
我有一个创建成本很高的线程安全对象,需要通过我的应用程序(Lucene.Net IndexReader)使用。 对象可能会变得无效,此时我需要重新创建它(IndexReader.IsCurrent 为
我正在尝试使用 Lucene 文档中定义的 open 函数 - https://lucene.apache.org/core/3_5_0/api/core/org/apache/lucene/inde
Lucene 4.1 中的 3.6 代码相当于什么: IndexReader ir = IndexReader.open(dir); TermEnum termEnum = ir.terms(t);
我正在使用新发布的 Lucene 4,并且我了解到与文档术语向量相关的 API 发生了很大变化。我已经通读了迁移文档和相关的各种博客邮件列表帖子,并且我相信我正确使用了 API。但是,我总是从 Ind
我正在尝试从 Lucene 的文档字段中获取所有名为 Terms 的术语和相关帖子(即如何计算 Lucene 中的术语频率?)。根据documentation有一种方法可以做到这一点: 公共(publ
我是一名优秀的程序员,十分优秀!