[英]Programmatically load data into solr using solrj and java
如何使用solrj API将数据从xml文件加载到solr?
谢谢Pascal。 我想念我的问题,我实际上正在使用groovy。 但无论如何你的方法确实有效,但这是我的解决方案:
CommonsHttpSolrServer server = SolrServerSingleton.getInstance().getServer();
def dataDir = System.getProperty("user.dir");
File xmlFile = new File(dataDir+"/book.xml");
def xml = xmlFile.getText();
DirectXmlRequest xmlreq = new DirectXmlRequest( "/update", xml);
server.request(xmlreq);
server.commit();
DirectXmlRequest的第一个arg是url路径,它必须是“/ update”,并且变量xml是包含XML的字符串。 例如
<add>
<doc>
<field name="title">blah</field>
</doc>
</add>
使用Java 6,您可以使用Xpath从xml文件中获取所需内容。 然后,从您从xml中提取的内容填充SolrInputDocument 。 当该文档包含您需要的所有内容时,您可以使用SolrServer的add方法将其提交给Solr。
SolrClient client = new HttpSolrClient("http://localhost:8983/solr/jiva/");
String dataDir = System.getProperty("user.dir");
File xmlFile = new File(dataDir + "/Alovera-Juice.xml");
if (xmlFile.exists()) {
InputStream is = new FileInputStream(xmlFile);
String str = IOUtils.toString(is);
DirectXmlRequest dxr = new DirectXmlRequest("/update", str);
client.request(dxr);
client.commit();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.