在我们的solr模式文件中,我们定义枚举字段类型并在enumConfig参数中指定外部enums.xml文件。
但是,我们必须手动将该文件复制到我们正在创建或更新的搜索索引的/ conf目录中。
有没有办法使用riak java客户端以编程方式执行此操作? API中的Yokozuna索引类似乎不支持外部文件加载,因此它抱怨它无法在路径中找到enums.xml文件。我们希望能够以编程方式更新模式并指向enums.xml文件,以便我们可以更新搜索索引,而无需手动将enums.xml文件复制到/ conf目录。
答案 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)的功能。现在,您必须手动将文件复制到群集中的每个节点。