Yokozuna solr模式文件枚举支持

时间:2015-08-13 10:31:49

标签: solr riak yokozuna

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

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

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

2 个答案:

答案 0 :(得分: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客户端

答案 1 :(得分:0)

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