- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的 Infinispan 6.0.2 系统中,我在缓存中添加了一些数据并使用 lucene 对其进行索引。它对于搜索部分效果很好。
但是由于缓存存在于服务器中,有时当服务器崩溃时,我需要重新加载数据并建立索引。这需要很长时间。
然后我发现Infinispan可以将索引存储在数据库中并从现有的Lucene索引加载。我认为这应该可以解决我的问题。但Infinispan用户指南中的信息很少,我不知道该怎么做。有人能给我举个例子吗???
最佳答案
Infinispan 包含高度可扩展的分布式 Apache Lucene Directory 实现。创建目录实例:
import org.apache.lucene.store.Directory;
import org.infinispan.lucene.directory.DirectoryBuilder;
import org.infinispan.Cache;
Cache cache = // create an Infinispan cache, configured as you like
Directory indexDir = DirectoryBuilder.newDirectoryInstance(cache, cache, cache, indexName)
.create();
indexName 是识别索引的唯一键。它的作用与路径在基于文件系统的索引上的作用相同:您可以创建几个不同的索引,并给它们不同的名称。当您在连接到同一网络的另一个实例中使用相同的indexName(或在同一台机器上实例化,对测试有用)时,它们将加入,形成一个集群并共享所有内容。使用不同的indexName可以让您在同一组缓存中存储不同的索引。
在此示例中,缓存被传递了三次,因为这对于快速演示来说是可以的,但正如 API 所建议的那样,最好单独调整每个缓存,因为它们将以不同的方式使用。下面提供了更多详细信息。
可以动态添加或删除新节点,使服务管理变得非常容易,并且也适合云环境:对负载峰值使用react很简单,因为只需启动更多内存和 CPU 能力即可向搜索系统添加更多内存和 CPU 能力节点。
引用documentation和 API reference了解详情
关于java - 如何在 Infinispan 中加载现有的 Lucene 索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24534085/
我是一名优秀的程序员,十分优秀!