Apache Solr - Menghapus Dokumen
Menghapus Dokumen
Untuk menghapus dokumen dari indeks Apache Solr, kita perlu menentukan ID dokumen yang akan dihapus di antara tag <delete> </delete>.
<delete>
<id>003</id>
<id>005</id>
<id>004</id>
<id>002</id>
</delete>
Di sini, kode XML ini digunakan untuk menghapus dokumen dengan ID 003 dan 005. Simpan kode ini dalam file dengan namadelete.xml.
Jika Anda ingin menghapus dokumen dari indeks yang dimiliki oleh inti bernama my_core, lalu Anda dapat mengeposkan delete.xml file menggunakan post alat, seperti yang ditunjukkan di bawah ini.
[Hadoop@localhost bin]$ ./post -c my_core delete.xml
Saat menjalankan perintah di atas, Anda akan mendapatkan output berikut.
/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
Verifikasi
Kunjungi beranda antarmuka web Apache Solr dan pilih inti sebagai my_core. Cobalah untuk mengambil semua dokumen dengan meneruskan kueri ":" di area teksqdan jalankan kueri. Saat menjalankan, Anda dapat mengamati bahwa dokumen tertentu dihapus.
Menghapus Field
Terkadang kami perlu menghapus dokumen berdasarkan bidang selain ID. Misalnya, kami mungkin harus menghapus dokumen yang kotanya adalah Chennai.
Dalam kasus seperti itu, Anda perlu menentukan nama dan nilai bidang dalam pasangan tag <query> </query>.
<delete>
<query>city:Chennai</query>
</delete>
Simpan sebagai delete_field.xml dan melakukan operasi penghapusan pada inti bernama my_core menggunakan post alat Solr.
[Hadoop@localhost bin]$ ./post -c my_core delete_field.xml
Saat menjalankan perintah di atas, ini menghasilkan output berikut.
/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
Verifikasi
Kunjungi beranda antarmuka web Apache Solr dan pilih inti sebagai my_core. Cobalah untuk mengambil semua dokumen dengan meneruskan kueri ":" di area teksqdan jalankan kueri. Saat menjalankan, Anda dapat mengamati bahwa dokumen yang berisi pasangan nilai bidang tertentu dihapus.
Menghapus Semua Dokumen
Sama seperti menghapus bidang tertentu, jika Anda ingin menghapus semua dokumen dari indeks, Anda hanya perlu meneruskan simbol “:” di antara tag <query> </ query>, seperti yang ditunjukkan di bawah ini.
<delete>
<query>*:*</query>
</delete>
Simpan sebagai delete_all.xml dan melakukan operasi penghapusan pada inti bernama my_core menggunakan post alat Solr.
[Hadoop@localhost bin]$ ./post -c my_core delete_all.xml
Saat menjalankan perintah di atas, ini menghasilkan output berikut.
/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
Verifikasi
Kunjungi beranda antarmuka web Apache Solr dan pilih inti sebagai my_core. Cobalah untuk mengambil semua dokumen dengan meneruskan kueri ":" di area teksqdan jalankan kueri. Saat menjalankan, Anda dapat mengamati bahwa dokumen yang berisi pasangan nilai bidang tertentu dihapus.
Menghapus semua dokumen menggunakan Java (Client API)
Berikut adalah program Java untuk menambahkan dokumen ke indeks Apache Solr. Simpan kode ini dalam file dengan namaUpdatingDocument.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");
}
}
Kompilasi kode di atas dengan menjalankan perintah berikut di terminal -
[Hadoop@localhost bin]$ javac DeletingAllDocuments
[Hadoop@localhost bin]$ java DeletingAllDocuments
Saat menjalankan perintah di atas, Anda akan mendapatkan output berikut.
Documents deleted