अपाचे सोलर - अपडेटिंग डेटा
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