अपाचे सोलर - अपडेटिंग डेटा

XML का उपयोग करके दस्तावेज़ को अद्यतन करना

मौजूदा दस्तावेज़ में फ़ील्ड को अपडेट करने के लिए XML फ़ाइल का उपयोग किया जाता है। नाम वाली फाइल में इसे सेव करेंupdate.xml

<add>   
   <doc>     
      <field name = "id">001</field>     
      <field name = "first name" update = "set">Raj</field>     
      <field name = "last name" update = "add">Malhotra</field>     
      <field name = "phone" update = "add">9000000000</field>    
      <field name = "city" update = "add">Delhi</field>   
   </doc> 
</add>

जैसा कि आप देख सकते हैं, डेटा अपडेट करने के लिए लिखी गई XML फ़ाइल ठीक उसी तरह है जैसे हम दस्तावेजों को जोड़ने के लिए उपयोग करते हैं। लेकिन फर्क सिर्फ इतना है कि हम इसका इस्तेमाल करते हैंupdate क्षेत्र की विशेषता।

हमारे उदाहरण में, हम उपरोक्त दस्तावेज़ का उपयोग करेंगे और आईडी के साथ दस्तावेज़ के क्षेत्रों को अपडेट करने का प्रयास करेंगे 001

मान लीजिए कि XML दस्तावेज़ में मौजूद है binसोलर की निर्देशिका। चूंकि हम उस इंडेक्स को अपडेट कर रहे हैं जो नाम के कोर में मौजूद हैmy_core, आप का उपयोग कर अद्यतन कर सकते हैं post उपकरण इस प्रकार है -

[Hadoop@localhost bin]$ ./post -c my_core update.xml

उपरोक्त कमांड निष्पादित करने पर, आपको निम्न आउटपुट मिलेगा।

/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-core
6.2.0.jar -Dauto = yes -Dc = my_core -Ddata = files 
org.apache.Solr.util.SimplePostTool update.xml 
SimplePostTool version 5.0.0 
Posting files to [base] url http://localhost:8983/Solr/my_core/update... 
Entering auto mode. File endings considered are 
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,
htm,html,txt,log 
POSTing file update.xml (application/xml) to [base] 
1 files indexed. 
COMMITting Solr index changes to http://localhost:8983/Solr/my_core/update... 
Time spent: 0:00:00.159

सत्यापन

Apache Solr वेब इंटरफेस के होमपेज पर जाएं और कोर को चुनें my_core। पाठ क्षेत्र में ":" क्वेरी पास करके सभी दस्तावेजों को पुनः प्राप्त करने का प्रयास करेंqऔर क्वेरी निष्पादित करें। निष्पादित करने पर, आप देख सकते हैं कि दस्तावेज़ अपडेट किया गया है।

जावा (क्लाइंट एपीआई) का उपयोग कर दस्तावेज़ को अद्यतन करना

Apache Solr इंडेक्स में दस्तावेज़ जोड़ने के लिए जावा प्रोग्राम है। इस कोड को नाम वाली फ़ाइल में सहेजेंUpdatingDocument.java

import java.io.IOException;  

import org.apache.Solr.client.Solrj.SolrClient; 
import org.apache.Solr.client.Solrj.SolrServerException; 
import org.apache.Solr.client.Solrj.impl.HttpSolrClient; 
import org.apache.Solr.client.Solrj.request.UpdateRequest; 
import org.apache.Solr.client.Solrj.response.UpdateResponse;
import org.apache.Solr.common.SolrInputDocument;  

public class UpdatingDocument { 
   public static void main(String args[]) throws SolrServerException, IOException { 
      //Preparing the Solr client 
      String urlString = "http://localhost:8983/Solr/my_core"; 
      SolrClient Solr = new HttpSolrClient.Builder(urlString).build();   
      
      //Preparing the Solr document 
      SolrInputDocument doc = new SolrInputDocument(); 
   
      UpdateRequest updateRequest = new UpdateRequest();  
      updateRequest.setAction( UpdateRequest.ACTION.COMMIT, false, false);    
      SolrInputDocument myDocumentInstantlycommited = new SolrInputDocument();  
      
      myDocumentInstantlycommited.addField("id", "002"); 
      myDocumentInstantlycommited.addField("name", "Rahman"); 
      myDocumentInstantlycommited.addField("age","27"); 
      myDocumentInstantlycommited.addField("addr","hyderabad"); 
      
      updateRequest.add( myDocumentInstantlycommited);  
      UpdateResponse rsp = updateRequest.process(Solr); 
      System.out.println("Documents Updated"); 
   } 
}

टर्मिनल में निम्नलिखित कमांड निष्पादित करके उपरोक्त कोड संकलित करें -

[Hadoop@localhost bin]$ javac UpdatingDocument 
[Hadoop@localhost bin]$ java UpdatingDocument

उपरोक्त कमांड निष्पादित करने पर, आपको निम्न आउटपुट मिलेगा।

Documents updated