2016-04-03 23 views
1

Amacım POJO'ları kullanarak solr'yi güncellemektir. SolrServer ve addBean yöntemini kullanarak bir alanı (id) güncelleştirmeye çalışıyorum.POJO'lar doğrudan çözümlenemedi

Program düzgün bir şekilde yürütülüyor ancak güncellememi solr olarak göremiyorum. Lütfen kodda neyin yanlış olabileceğini bana bildirin. Ayrıca alanları eklemek için SolrInputDocument kullanmayı denedim ve iyi çalışıyor (snippet'te yorumlanmış kod). Eğer doğrudan çözülecek POJO'lar eklemek için bir cevap sağlayabilirseniz, benim için çok yararlı olacaktır.

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

Teşekkür

cevap

0

Eğer

  1. sizin solrj versiyonunu ve Solr sürümünü kontrol edebilirsiniz edin: Bu kodudur. Aynı olmalı!
  2. güncelleştirmenin geri yüklemesini yazdır: org.apache.solr.client.solrj.response. UpdateResponse SolrServer'dan yardım ve size yardımcı olmak için cevabı burada geçmiş.

    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. solrconfig.xml, Solr yönetici http://localhost:8983/solr/#/~logging

  4. payınız schema.xml içinde
günlükleri bkz
İlgili konular