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。现在您必须手动将文件复制到集群中的每个节点。
在我们的 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。现在您必须手动将文件复制到集群中的每个节点。