Программная загрузка данных в solr с использованием solrj и java - PullRequest
3 голосов
/ 30 мая 2010

Как я могу загрузить данные из XML-файла в Solr с помощью API Solrj?

Ответы [ 3 ]

6 голосов
/ 02 июня 2010

Спасибо, Паскаль. Я скучаю по сформулированному вопросу, я на самом деле использую заводной. Но в любом случае ваш подход работает, но это было мое решение:

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>
4 голосов
/ 31 мая 2010

В Java 6 вы можете использовать Xpath , чтобы получить то, что вам нужно из вашего XML-файла. Затем вы заполняете SolrInputDocument из того, что вы извлекли из XML. Когда этот документ содержит все, что вам нужно, вы отправляете его в Solr, используя add метод SolrServer .

0 голосов
/ 16 июня 2015
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();
}
...