Tutorial Apache Solr Indexing MySQL
Apa itu Apache Solr
Solr alias “Solar”, secara singkatnya adalah aplikasi yang membantu kita untuk membuat search engine sendiri. Penjelasan lebih detail bisa anda dapatkan di Solr Tutorial.
Apa yang diperlukan untuk indexing MySQL ke Solr?
Untuk bisa mengindeks data dari MySQL atau DBMS lainnya, kita bisa menggunakan Data Import Handler.
Bagaimana melakukannya?
Persiapan Environment
- Download Java
- Download Apache Solr
- Download MySQL JDBC
- Siapkan sebuah tabel dalam MySQL. Dalam contoh ini saya mempunyai nama tabel : produk pada host : localhost
Langkah-langkah
- Pastikan sudah terinstall Java dan sudah dimasukkan ke
PATH
- Ekstrak Solr ke salah satu direktori sesuai kehendak anda
- Ekstrak MySQL JDBC, pilih file mysql-connector-java.bin.jar di dalamnya kemudian copy ke
solr/dist/
- Buat core di dalam Solr, kalau bingung bisa lihat di sini
-
Buka file
solr/server/solr/(nama core)/conf/solrconfig.xml
lalu tambahkan code berikut:<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/" regex="mysql-connector-java-.*\.jar" /> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>
Code diatas adalah konfigurasi untuk melakukan koneksi ke MySQL menggunakan DataImportHandler, disana juga dijelaskan bahwa file konektornya adalah file dengan nama data-config.xml.
-
Buat sebuah file dengan nama data-config.xml di foler
conf/
pada core, lalu isikan code berikut:<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/produk" user="root" password="rahasia"/> <document> <entity name="foodproducts" query="SELECT id, fCode, fName, fManufacture FROM foodproducts"> <field column="id" name="id" /> <field column="fCode" name="food_code" /> <field column="fName" name="food_name" /> <field column="fManufacture" name="food_man" /> </entity> </document> </dataConfig>
Code diatas berisi url mysql beserta username dan passwordnya. Tag entity berarti satu buah entitas yang di-indeks ke dalam Solr. Dalam entity “foodproducts” tersebut terdapat 4 field yang akan dimasukkan ke indeks Solr.
-
Setelah itu jalankan server Solr dengan command
bin/solr start -p 8983
-
Masukkan 4 field (id, food_code, food_name dan food_man) ke dalam schema pada core.
Lakukan dengan memilih menu Schema kemudian Add Field untuk keempat field tersebut. Nama field disesuaikan dengan field name pada file data-config.xml (langkah ke-6).
-
Lakukan import data dari MySQL dengan pilih menu Data Import
Jika berhasil akan muncul pemberitahuan:
Berhasil! :)