Yokozuna solr 模式文件枚举支持

Yokozuna solr schema file enum support

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

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

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

这将在您的 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 客户端

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