在我的Infinispan 6.0.2系统中,我在缓存中添加了一些数据,并使用lucene对它们进行索引。它适用于搜索部分。
但是因为缓存存在于服务器中,有时当服务器发生故障时,我需要重新加载数据并将其编入索引。这需要很长时间。
然后我发现Infinispan可以将索引存储在数据库中并从现有的Lucene索引加载。我认为应该解决我的问题。但Infinispan用户指南中的信息很少,我不知道该怎么做。有人能举个例子吗???
答案 0 :(得分:0)
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建议分别调整每个缓存是个好主意,因为它们将以不同的方式使用。更多细节见下文。
可以动态添加或删除新节点,使服务管理非常简单,也适用于云环境:对负载峰值做出反应很简单,因为只需启动更多内容即可为搜索系统增加更多内存和CPU功率节点
有关详细信息,请参阅documentation和API reference