Day 27: Index Categori dan Rule di Oracle Text


Learning In HomeOriginal Date: 8 Februari 2009

Setelah menggunakan index CONTEXT di hari sebelumnya, hari ini aku akan mencoba latihan menggunakan index CTXCAT. Aku akan mulai dengan membuat index set terlebih dahulu:


BEGIN
 ctx_ddl.create_index_set
   ('idx_set_barang');
 ctx_ddl.add_index
   ('idx_set_barang', 
    'harga');
 ctx_ddl.add_index
   ('idx_set_barang', 
    'harga,kategori');
 ctx_ddl.add_index
   ('idx_set_barang', 
    'kategori');
END;
/

Aku membuat index dengan menggunakan perintah seperti ini:


CREATE INDEX idx_barang ON tbl_barang(nama)
INDEXTYPE IS CTXSYS.CTXCAT
PARAMETERS ('index set idx_set_barang');

Setelah itu, aku siap mencoba query yang memakai category search, seperti:


SELECT * FROM TBL_BARANG WHERE CATSEARCH(nama, 'Intel', 'harga<3000000') > 0;

Query di atas akan mencari nama yang mengandung kata Intel (case insensitive) dimana harga berada di bawah 3000000. Contoh query lainnya yang memakai category search, misalnya:


SELECT * FROM TBL_BARANG WHERE CATSEARCH(nama, 'intel', 'harga<3000000 and kategori = 3') > 0;


SELECT * FROM TBL_BARANG WHERE CATSEARCH(nama, 'geforce', 'order by harga') > 0;

Selanjutnya, aku akan mencoba memakai index CTXRULE yang dapat dipergunakan untuk klasifikasi teks. Misalnya, aku menyiapkan tabel berikut:


CREATE TABLE TBL_KATEGORI_TEXT (
  ID NUMBER(10),
  KATEGORI VARCHAR2(100),
  EKSPRESI VARCHAR2(100)
);

INSERT INTO TBL_KATEGORI_TEXT VALUES 
 (1, 'Hero', 
  'Spiderman or Wolverine or Dr.Strange');

INSERT INTO TBL_KATEGORI_TEXT VALUES 
 (2, 'Villain', 
  'Octopus or Dr.Doom or Magneto');

CREATE INDEX idx_kategori_text ON 
  tbl_kategori_text (ekspresi) 
  INDEXTYPE IS ctxsys.ctxrule;

Lalu, aku dapat memberikan query berikut:


SELECT kategori FROM TBL_KATEGORI_TEXT WHERE MATCHES(ekspresi, 'dr.doom')>0;

yang akan mengembalikan nilai Villain.

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: