2016-04-03 9 views
1

Meine Absicht ist es, Solr mit POJOs zu aktualisieren. Ich versuche, ein Feld (ID) mit SolrServer und addBean Methode zu aktualisieren.POJOs kann nicht direkt auf Solr aktualisiert werden

Das Programm wird ordnungsgemäß ausgeführt, aber ich kann mein Update in solr nicht sehen. Bitte lassen Sie mich wissen, was im Code falsch ist. Ich habe auch versucht, SolrInputDocument, um die Felder hinzuzufügen, und es funktioniert gut (kommentierte Code im Schnipsel). Es wird für mich sehr hilfreich sein, wenn Sie mir eine Antwort geben können, wie Sie POJOs direkt zu solr hinzufügen können. Dies ist der Code:

import org.apache.solr.client.solrj.beans.Field; 
public class Item { 
      @Field 
      String id; 
     } 

package stockjournalist; 
import java.io.IOException; 

import org.json.simple.JSONObject; 

import org.apache.solr.*; 
import org.apache.solr.client.solrj.request.DirectXmlRequest; 
import org.apache.solr.client.solrj.request.LukeRequest; 
import org.apache.solr.client.solrj.request.SolrPing; 
import org.apache.solr.client.solrj.response.LukeResponse; 
import org.apache.solr.client.solrj.response.QueryResponse; 
import org.apache.solr.client.solrj.response.FacetField; 
import org.apache.solr.client.solrj.response.UpdateResponse; 
import org.apache.solr.client.solrj.util.ClientUtils; 
import org.apache.solr.common.SolrInputDocument; 
import org.apache.solr.common.util.XML; 
import org.apache.solr.common.params.FacetParams; 
import org.apache.solr.client.solrj.SolrServer; 
import org.apache.solr.client.solrj.SolrServerException; 
import org.apache.solr.client.solrj.impl.HttpSolrServer; 
import org.apache.solr.client.solrj.impl.*; 
import org.apache.solr.client.solrj.beans.Field; 

public class JsonSample { 

    public static void main(String args[]) throws IOException, SolrServerException{ 
     JsonSample js = new JsonSample(); 
     js.insertOneDoc(); 
    } 
    private SolrServer getSolrServer(){ 
      String server = "http://localhost:8983/solr"; 
      SolrServer solrServer = null; 
      solrServer = new HttpSolrServer(server); 
      return solrServer; 
    } 
    public void insertOneDoc() throws SolrServerException, IOException { 
      Item item = new Item(); 
      item.id = "5137158701"; 
      SolrServer server = getSolrServer(); 
      server.addBean(item); 
      server.commit(); 
      //String urlString = "http://localhost:8983/solr"; 
      //HttpSolrServer solr = new HttpSolrServer(urlString); 
      //SolrInputDocument doc = new SolrInputDocument(); 
      //doc.addField("id", "552199"); 
      //doc.addField("name", "See if 513715870 is available in the index."); 
      //solr.add(doc); 
      //solr.commit(); 
     } 
} 

Dank

Antwort

0

bitte können Sie

  1. überprüfen Sie Ihre solrj Version und solr Version. Das muss gleich sein!
  2. Drucken Sie die Rückkehr des Updates: org.apache.solr.client.solrj.response. UpdateResponse von SolrServer und die Antwort hier vorbei, um Ihnen zu helfen.

    public void insertOneDoc() throws SolrServerException, IOException { 
    Item item = new Item(); 
    item.id = "5137158701"; 
    SolrServer server = getSolrServer(); 
    
    //DEBUG 
    UpdateResponse resp= server.addBean(item); 
    System.out.println("SolrResponse:"+ r.getStatus() + r.getElapsedTime()); 
    for(Entry<String, Object> o: r.getResponse()){ 
        System.out.println("SolrResponse - response :"+ o.getKey() + o.getValue().toString()); 
    } 
    server.commit(); 
    

    }

  3. siehe logs in solr Admin http://localhost:8983/solr/#/~logging

  4. Teilen Sie Ihre schema.xml, solrconfig.xml
Verwandte Themen