अपाचे सोलर - दस्तावेज़ हटाना

दस्तावेज़ हटाना

अपाचे सोलर के सूचकांक से दस्तावेजों को हटाने के लिए, हमें <हटाना> </ हटाना> टैग के बीच हटाए जाने वाले दस्तावेजों की आईडी निर्दिष्ट करने की आवश्यकता है।

<delete>   
   <id>003</id>   
   <id>005</id> 
   <id>004</id> 
   <id>002</id> 
</delete>

यहां, यह XML कोड का उपयोग आईडी के साथ दस्तावेजों को हटाने के लिए किया जाता है 003 तथा 005। इस कोड को नाम वाली फ़ाइल में सहेजेंdelete.xml

यदि आप इंडेक्स से उन दस्तावेजों को हटाना चाहते हैं जो नाम के कोर से संबंधित हैं my_core, तो आप पोस्ट कर सकते हैं delete.xml का उपयोग कर फ़ाइल post उपकरण, जैसा कि नीचे दिखाया गया है।

[Hadoop@localhost bin]$ ./post -c my_core delete.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 delete.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 delete.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.179

सत्यापन

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

एक खेत को हटाना

कभी-कभी हमें आईडी के अलावा अन्य फ़ील्ड के आधार पर दस्तावेज़ों को हटाने की आवश्यकता होती है। उदाहरण के लिए, हमें उन दस्तावेजों को हटाना पड़ सकता है जहां शहर चेन्नई है।

ऐसे मामलों में, आपको <क्वेरी> </ क्वेरी> टैग जोड़ी के भीतर फ़ील्ड का नाम और मान निर्दिष्ट करना होगा।

<delete> 
   <query>city:Chennai</query> 
</delete>

इसे इस रूप में सहेजें delete_field.xml और नामित नाम पर डिलीट ऑपरेशन करें my_core का उपयोग करते हुए post सोलर का उपकरण।

[Hadoop@localhost bin]$ ./post -c my_core delete_field.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 delete_field.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 delete_field.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.084

सत्यापन

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

सभी दस्तावेज़ हटाना

किसी विशिष्ट फ़ील्ड को हटाने की तरह, यदि आप किसी अनुक्रमणिका से सभी दस्तावेज़ों को हटाना चाहते हैं, तो आपको केवल <<>> टैग के बीच के टैग के बीच प्रतीक ":" को पास करना होगा, जैसा कि नीचे दिखाया गया है।

<delete> 
   <query>*:*</query> 
</delete>

इसे इस रूप में सहेजें delete_all.xml और नामित नाम पर डिलीट ऑपरेशन करें my_core का उपयोग करते हुए post सोलर का उपकरण।

[Hadoop@localhost bin]$ ./post -c my_core delete_all.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 deleteAll.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 deleteAll.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.138

सत्यापन

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.common.SolrInputDocument;  

public class DeletingAllDocuments { 
   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();   
          
      //Deleting the documents from Solr 
      Solr.deleteByQuery("*");        
         
      //Saving the document 
      Solr.commit(); 
      System.out.println("Documents deleted"); 
   } 
}

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

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

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

Documents deleted