0

在我们的 solr 模式文件中,我们定义了枚举字段类型并在 enumConfig 参数中指定了一个外部 enums.xml 文件。

但是,我们必须手动将该文件复制到我们正在创建或更新的搜索索引的 /conf 目录中。

有没有办法使用 riak java 客户端以编程方式完成它?API 中的 Yokozuna 索引类似乎不支持外部文件加载,因此它抱怨在路径中找不到 enums.xml 文件。我们希望能够以编程方式更新架构并指向 enums.xml 文件,以便我们可以更新搜索索引,而无需手动将 enums.xml 文件复制到 /conf 目录。

4

2 回答 2

0

这将在您的 Riak 集群上创建一个模式(及其 XML 文件):

import com.basho.riak.client.api.RiakClient;
import com.basho.riak.client.api.commands.search.*;
import com.basho.riak.client.core.query.search.YokozunaIndex;
import com.basho.riak.client.core.query.search.YokozunaSchema;

String schemaName = "enum";

RiakClient client = RiakClient.newClient("127.0.0.1");

String schemaStr = ...; // read from local enum.xml

YokozunaSchema schemaObj = new YokozunaSchema(schemaName, schemaStr);
StoreSchema storeSchema = new StoreSchema.Builder(schemaObj).build();
client.execute(storeSchema);

然后,您可以基于该架构创建索引:

String indexName = "enum_idx";

YokozunaIndex indexObj = new YokozunaIndex(indexName, schemaName);
StoreIndex storeIndex = new StoreIndex.Builder(indexObj).build();
client.execute(storeIndex);

用于 Java 2.x 的 Riak 客户端

于 2015-08-13T14:54:04.853 回答
0

目前,API 中没有可通过 Java 客户端访问的功能,可让您上传外部文件,如 enums.xml。现在,您必须手动将文件复制到集群中的每个节点。

于 2015-08-14T17:58:48.963 回答