Oracle Full Text Indexing And Searching

November 3, 2008

Oracle teks, sebelumnya dikenal sebagai Intermedia teks dan konteks, teknologi pengindeksan berbasis teks yang memungkinkan Anda untuk meng-indeks secara efisien berbasis teks dan menghasilkan teks dokumen klasifikasi aplikasi. Pada artikel ini saya hanya akan menulis beberapa fitur ini.

 

  • Konteks Indeks
  • CTXCAT Indeks
  • CTXRULE Indeks
  • Indeks Pemeliharaan

 

Contoh dalam artikel ini memerlukan grant ke package  CTX_DDL,  sebagai berikut: 

GRANT EXECUTE ON CTX_DDL TO <username>;

Konteks Indeks

CONTEXT indeks digunakan untuk indeks jumlah besar teks seperti Word, PDF, XML, HTML atau teks dokumen. Dalam contoh ini kita akan menyimpan data dalam BLOB kolom, yang memungkinkan kita untuk menyimpan binari dokumen seperti Word dan PDF serta teks biasa.  Pertama kita buat sebuah contoh skema untuk menampung data kita, sebagai berikut :
DROP TABLE my_docs;
DROP SEQUENCE my_docs_seq;
DROP PROCEDURE load_file_to_my_docs;

CREATE TABLE my_docs (
  id    NUMBER(10)     NOT NULL,
  name  VARCHAR2(200)  NOT NULL,
  doc   BLOB           NOT NULL
)
/

ALTER TABLE my_docs ADD (
  CONSTRAINT my_docs_pk PRIMARY KEY (id)
)
/

CREATE SEQUENCE my_docs_seq;

CREATE OR REPLACE DIRECTORY documents AS 'C:\work';

Kemudian kita load beberapa file, sebagai berikut :

CREATE OR REPLACE PROCEDURE load_file_to_my_docs (p_file_name  IN  my_docs.name%TYPE) AS
  v_bfile      BFILE;
  v_blob       BLOB;
BEGIN
  INSERT INTO my_docs (id, name, doc)
  VALUES (my_docs_seq.NEXTVAL, p_file_name, empty_blob())
  RETURN doc INTO v_blob;

  v_bfile := BFILENAME('DOCUMENTS', p_file_name);
  Dbms_Lob.Fileopen(v_bfile, Dbms_Lob.File_Readonly);
  Dbms_Lob.Loadfromfile(v_blob, v_bfile, Dbms_Lob.Getlength(v_bfile));
  Dbms_Lob.Fileclose(v_bfile);

  COMMIT;
END;
/

EXEC load_file_to_my_docs('FullTextIndexingUsingOracleText9i.doc');
EXEC load_file_to_my_docs('FullTextIndexingUsingOracleText9i.asp');
EXEC load_file_to_my_docs('XMLOverHTTP9i.asp');
EXEC load_file_to_my_docs('UNIXForDBAs.asp');
EXEC load_file_to_my_docs('emp_ws_access.sql');
EXEC load_file_to_my_docs('emp_ws_test.html');
EXEC load_file_to_my_docs('9ivsSS2000forPerformanceV22.pdf');

Kemudian kita buat sebuah indeks dengan tipe CONTEXT di kolom dokumen dan gabungkan dengan tabel statistik, sebagai berikut :

CREATE INDEX my_docs_doc_idx ON my_docs(doc) INDEXTYPE IS CTXSYS.CONTEXT;

EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'MY_DOCS', cascade=>TRUE);

Terakhir kita buat query untuk mencari dokumen dengan isi yang spesifik:

SELECT SCORE(1) score, id, name
FROM   my_docs
WHERE  CONTAINS(doc, 'SQL Server', 1) > 0
ORDER BY SCORE(1) DESC;

     SCORE         ID NAME
---------- ---------- ------------------------------------------------
       100        127 9ivsSS2000forPerformanceV22.pdf

1 row selected.

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=2 Bytes=58)
   1    0   SORT (ORDER BY) (Cost=4 Card=2 Bytes=58)
   2    1     TABLE ACCESS (BY INDEX ROWID) OF 'MY_DOCS' (Cost=2 Card=2 Bytes=58)
   3    2       DOMAIN INDEX OF 'MY_DOCS_DOC_IDX' (Cost=0)

SELECT SCORE(1) score, id, name
FROM   my_docs
WHERE  CONTAINS(doc, 'XML', 1) > 0
ORDER BY SCORE(1) DESC;

     SCORE         ID NAME
---------- ---------- ------------------------------------------------
        74        123 XMLOverHTTP9i.asp
         9        125 emp_ws_access.sql

2 rows selected.

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=2 Bytes=58)
   1    0   SORT (ORDER BY) (Cost=4 Card=2 Bytes=58)
   2    1     TABLE ACCESS (BY INDEX ROWID) OF 'MY_DOCS' (Cost=2 Card=2 Bytes=58)
   3    2       DOMAIN INDEX OF 'MY_DOCS_DOC_IDX' (Cost=0) 

Mengkonsumsi Web Service ASP.Net melalui Java Applet

November 3, 2008

 

Artikel ini akan berguna jika anda perlu mengkonsumsi ASP.NET webservices dari bahasa atau tanpa platform. NET. Dalam contoh ini, saya yang mengkonsumsi WebServices dari Java applet. Hal ini untuk membuktikan bahwa .Net dapat berjalan pada platform lain dengan menyediakan fitur lintas-platform dari sisi klien untuk mengkonsumsi ASP.NET webservices.

Agar tidak terlalu sulit untuk dipahami bagaimana mengkonsumsi web service dengan platform berbeda, maka saya pilih java sebagai platform yang akan mengkonsumsinya.

Artikel ini menunjukkan bagaimana Anda menggunakan applet Java pada halaman Web Anda dan mampu berkomunikasi dengan ASP.NET untuk mengkonsumsi XML WebServices pada klien.

Berikut ini contoh methode (function) yang kita buat pada web service :

 

[WebMethod]
    public string ConcatWithSpace(string one, string two)
    {
        return one+" "+two;
    }
Berikut ini contoh scrip untuk java applet yang akan menakses ASP.Net Web Service
SoapRequestBuilder s = new SoapRequestBuilder();
    s.Server = "127.0.0.1"; // server ip address or name

    s.MethodName = "ConcatWithSpace";
    s.XmlNamespace = "http://tempuri.org/";
    s.WebServicePath = "/SimpleService/Service1.asmx";
    s.SoapAction = s.XmlNamespace+s.MethodName;
    s.AddParameter("one", "David");
    s.AddParameter("two", "Hobbs");
    String response = s.sendRequest();

Ajax Technology

November 3, 2008

Ajax (asynchronous javascript dan XML) atau AJAX, adalah sebuah teknik interaktif yang digunakan untuk membuat aplikasi web yang memanfaatkan teknologi asynchronous. Dengan Ajax, aplikasi web dapat mengambil data dari server secara asynchronous di belakang tanpa perlu refresh halaman atau postback. Data diambil menggunakan XMLHttpRequest atau untuk mengakses prosedur atau fungsi yang ada diserver menggunakan javascript dan XML. 

Sejarah Ajax :

Ajax mulai trend atau popular digunakan pada tahun 2005, yang merupakan pengembangan dari teknologi iFrame Elemen pada browser Internet Explorer (IE) yang dibuat oleh Microsoft. Kemudian Microsoft mengembangkan teknologi Remote Script pada tahun 2008, kemudian dilanjutkan dengan pengembangan ActiveX di IE versi 5.0 sebagai pengganti Java Applet  pada tahun 1999. Kemudian Mozilla dan Safari mengikuti teknologi ini. Pada akhirnya World Wide Web Consorsium (W3C) memutuskan pada tanggal 5 April 2006 menjadi standart pengembangan web.

Keuntungan :

 

  • Dalam banyak kasus, halaman di situs Web terdiri dari banyak konten. Dengan menggunakan metode tradisional konten akan terus merfress pada saat ada permintaan. Namun, menggunakan Ajax, aplikasi web dapat meminta hanya konten yang perlu yang refresh, sehingga secara drastis mengurangi penggunaan bandwidth dan beban waktu. 
  • Penggunaan asynchronous permintaan memungkinkan klien Web browser UI untuk lebih interaktif dan merespon dengan cepat untuk masukan, dan bagian-bagian tertentu dari halaman juga dapat direload secara parsial. Pengguna mungkin akan merasa aplikasi lebih cepat atau lebih responsif, bahkan jika aplikasi tersebut belum berubah pada sisi server.
  • Penggunaan Ajax dapat mengurangi koneksi ke server, semenjak client scrip dan css cuma didownload ke client sekali saja.

 

Kerugian :

  • Fungsi ajax akan tidak berjalan jika si pengguna menon-aktifkan fitur javascript pada browser
  • Rentan serangan hacker, karena client dapat mengakses remote procedure .

1. Menampilkan Peta

Oktober 6, 2008
  • Tambahkan statement Imports MapInfo.Mapping sebelum nama Class Form
  • Tambahkan MapControl pada form (nama MapControl adalah MapControl1 secara default)
  • Tambahkan Maptoolbar pada from dan set property MapControl pada MapToolBar à MapControl1
  • Tambahkan event form load pada form
  • Buat Path Direktori tempat dimana peta berada

        Dim PathPeta As String

        PathPeta = “C:\LatihanMapXtreme2005\Peta\”

  • Tentukan nama peta yang akan ditampilkan

        Dim NamaPeta As String

        NamaPeta = “Indonesia.tab”

  • Buat sebuah MapTableLoader untuk menampilkan peta pada MapControl dan masukan variable path direktori serta nama peta yang akan ditampilkan

        Dim LoadPeta As New MapTableLoader(PathPeta & NamaPeta)

  • Load peta ke MapControl

        MapControl1.Map.Load(LoadPeta)


Ikuti

Get every new post delivered to your Inbox.