使用 solrj 和 java 以编程方式将数据加载到 solr 中

发布于 2024-09-03 16:29:02 字数 44 浏览 5 评论 0原文

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

How can I load data from an xml file into solr using the solrj API?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小草泠泠 2024-09-10 16:29:02

谢谢帕斯卡。我错过了我的问题的措辞,我实际上正在使用 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>

Thanks Pascal. I miss worded my question, I'm actually using groovy. But in any event your approach does work, but this was my solution:

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(); 

The first arg to DirectXmlRequest is a url path, it must be "/update" and that the variable xml is a string containing the XML. For example

<add>
   <doc>
     <field name="title">blah</field>
   </doc>
</add>
影子是时光的心 2024-09-10 16:29:02

对于 Java 6,您可以使用 Xpath 从 xml 文件中获取您需要的内容。然后,您从以下内容填充 SolrInputDocument你从xml中提取的。当该文档包含您需要的所有内容时,您可以使用 SolrServer.

With Java 6, you can use Xpath to fetch what you need from your xml file. Then, you populate a SolrInputDocument from what you extracted from the xml. When that document contains everything you need, you submit it to Solr using the add method of SolrServer.

書生途 2024-09-10 16:29:02
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();
}
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();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文