【发布时间】:2014-08-09 08:47:59
【问题描述】:
我正在使用 Datastax Enterprise 和 DSE Search(Cassandra 上的 SolR)编写应用程序。
我的问题是我需要生成 schema.xml 并使用 Java 动态地将 solrconfig.xml 和 schema.xml 发送到 SolR。不使用 curl。
我尝试使用 Commons HttpComponents 执行此操作,但插入 cassandra 表的 solrconfig.xml 文件不正确。 Http 相关数据插入到 XML 文件开头之前,如下所示:
��:
solr_adminsolr_resourcesresource_value��--9NDJNu2AW4jtIyX6ggQAgEqI3FXp3JpDZ6
Content-Disposition: form-data; name="solrconfig.xml"; filename="solrconfig.xml"
Content-Type: application/xml; charset=ISO-8859-1
Content-Transfer-Encoding: binary
<config>
<!-- In all configuration below, a prefix of "solr." for class names
is an alias that causes solr to search appropriate packages,
including org.apache.solr.(search|update|request|core|analysis)
[Continued...]
当然,SolR 在尝试读取此配置时会失败。
有人知道如何正确地以编程方式将这两个文件从 java 发送到 SolR 吗?
提前感谢您的回答。
【问题讨论】:
-
使用 HttpClient 不起作用(从 cassandra blob 读取)。使用 SolrJ 创建核心不起作用(抱怨缺少文件)。 ContentStream 请求失败并出现 500 错误 HttpSolrServer server = new HttpSolrServer(solrUrl); ContentStreamUpdateRequest req= new ContentStreamUpdateRequest("/resources/"+solrKeyspace + "." + datasetName + "/"); req.addContentStream(new ContentStreamBase.FileStream(new File("solrconfig.xml"))); server.request(req); server.commit();返回非正常状态:500,消息:内部服务器错误
标签: java solr cassandra datastax-enterprise datastax