Day 35: Oracle Ultra Search


Learning In HomeOriginal Date: 16 Februari 2009

Oracle Ultra Search merupakan teknologi yang dibangun berbasiskan Oracle Database dan Oracle Text. Ia memiliki sebuah komponen crawler, Ultra Search Crawler, yang akan meng-index data dari berbagai source di saat jadwalnya tiba. Sebelum mulai memakai Ultra Search, aku harus mengaktifkan Ultra Search middle tier yang merupakan aplikasi J2EE yang dijalankan dalam standalone OC4J bawaan database Oracle:


%ORACLE_HOME%/bin/searchctl start

Lalu, aku membuka halaman administrasi Ultra Search melalui browser, dimana alamat-nya secara default adalah http://localhost:5620/ultrasearch/admin/index.jsp

Karena SID yang aku pakai bukanlah default ORCL, maka aku perlu mengubah element URL di file %ORACLE_HOME%\oc4j\j2ee\OC4J_SEARCH\config\data-sources.xml. Awalnya, aku mengira ini sudah menyelesaikan masalah. Tapi Ultra Search Administration Page tetap complain tidak menemukan database ORCL, padahal aku sudah mengganti ke nama database yang benar di data-sources.xml. Akhirnya, setelah memeriksa lebih lanjut, aku menemukan bahwa kebanyakan file untuk menjalankan Ultra Search terletak di %ORACLE_HOME%\ultrasearch. Tidak lama kemudian, aku menemukan file %ORACLE_HOME%\ultrasearch\webapp\config\ultrasearch.properties. Setelah mengisi connection.url dengan nilai yang benar, akhirnya halaman utama administrasi Ultra Search dapat ditampilkan dengan baik.

Aku mencoba login dengan menggunakan user WKSYS (yang sudah aku unlock sebelumnya). User ini merupakan salah satu user yang memiliki hak akses untuk mengatur instance Ultra Search. Pada halaman instance, aku memilih link create, create instance untuk membuat sebuah instance baru. Setiap instance Ultra Search diasosiasikan dengan user database yang memiliki role WKUSER. Setelah selesai membuat instance, jika aku memilih link select, instance yang baru aku buat tersebut akan muncul pada daftar. Aku memilih nama instance tersebut, kemudian men-klik tombol apply sehingga Ultra Search tahu bahwa aku ingin melakukan administrasi untuk instance tersebut.

Pada halaman crawler, settings, aku dapat mengatur konfigurasi untuk Ultra Search Crawler, seperti jumlah prosesor dan jumlah thread yang akan dipergunakan saat proses crawler aktif.

Pada halaman sources, aku dapat menentukan apa saja yang akan menjadi target crawler. Sources dapat berupa web sources (halaman web tertentu), table sources (tabel di database Oracle), email sources, file sources, oracle sources dan user-defined. Aku mencoba mendefinisikan file source, yang berupa sebuah direktori yang terdiri atas kumpulan file Microsoft Word.

Setelah itu, pada halaman schedules, aku menentukan kapan saja crawler akan dijalankan untuk meng-index dokumen Word di source yang telah aku tentukan. Karena ini hanya sebagai latihan saja, pada schedule frequency, aku memilih manual launch. Aku tidak suka saat sedang belajar dan bermain game, tiba-tiba proses crawler bekerja dan meningkatkan beban komputerku. Untuk menjalankan schedule yang baru aku buat, aku men-klik pada tulisan di kolom status, kemudian men-klik tombol execute immediately. Aku dapat melihat log proses-nya di folder %ORACLE_HOME%\ultrasearch\log.

Setelah itu, aku dapat mulai menggunakan Oracle Ultra Search. Pada latihan kali ini, aku akan mencoba memakai Java API, dengan kode seperti berikut ini:


Instance instance = 
  new Instance();
instance.setConnection(cn);
instance.setInstanceName(
  "INSTANCE_LATIHAN");
instance.setCloseConnection(
  false);
InstanceMetaData metadata = 
  instance.getMetaData();

Query query = new Contains(
  "name", metadata);
Request req = new Request();
req.setQuery(query);
req.setExcerptLength(400);

Result result = instance.
  getResult(req);
System.out.println(
  "Estimate Hit Count = " + 
  result.estimateHitCount());
System.out.println(
  "Number of documents hit = " + 
  result.size());

DisplayUtil util = new 
  DisplayUtil();
util.setInstance(instance);
Writer w = new 
  OutputStreamWriter(System.out);

Iterator i = result.iterator();
while (i.hasNext()) {
  Document d = (Document) 
    i.next();				
  System.out.println(
    "Result Excerpt ==> " + 
    d.getExcerpt());
}

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: