3

如何使用 solrj API 将 xml 文件中的数据加载到 solr 中?

4

3 回答 3

6

谢谢帕斯卡。我想念我的问题,我实际上正在使用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 的第一个参数是 url 路径,它必须是“/update”并且变量 xml 是包含 XML 的字符串。例如

<add>
   <doc>
     <field name="title">blah</field>
   </doc>
</add>
于 2010-06-02T15:35:02.753 回答
4

在 Java 6 中,您可以使用Xpath从您的 xml 文件中获取您需要的内容。然后,根据从 xml 中提取的内容填充SolrInputDocument 。当该文档包含您需要的所有内容时,您可以使用SolrServer的add方法将其提交给 Solr 。

于 2010-05-31T13:22:12.653 回答
-1
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();
}
于 2015-06-16T14:13:25.510 回答