Listing 4.26. Method untuk update inverted index pada database index ready
ORDBMS
4.5.4 Halaman Edit Makalah
Listing 4.27. Method untuk create inverted index pada database index ready
ORDBMS
method untuk mengupdate table ORDBMS public static void updateInvertedIndexORDBMS {
int id_document; Term term = new Term;
ArrayListTerm dataTerm = new ArrayListTerm; ArrayListJurnal dataJurnal = getDataJurnalORDB;
for int i = 0; i dataJurnal.size; i++ { System.out.printlni + | + dataJurnal.geti.getJudul + |
+ dataJurnal.geti.getJurnal_id; id_document = getIdDocumentServerdataJurnal.geti.getJudul;
System.out.printlnid doc + id_document; dataTerm = getDataPostingRDBMSid_document;
for int j = 0; j dataTerm.size; j++ { term.updateTermORBMSdataTerm.getj.getTerm,
dataTerm.getj.getDfk,
dataTerm.getj.getNidfk, dataTerm.getj.getTfik, dataTerm.getj.getNtfik, dataTerm.getj.getW,
dataJurnal.geti.getJurnal_id; System.out.printlnupdate Term + dataTerm.getj.getTerm +
| + dataJurnal.geti.getJurnal_id + |
+ dataJurnal.geti.getJudul + | + dataTerm.getj.getTfik;
} }
}
method untuk membuat inverted index indeks public static void createInvertedIndexIndexORBDMS {
Jurnal jurnal = new Jurnal; Term term = new Term;
String judul, nama_penulis, path; int id_document = 0;
int max_jurnal_id; ArrayListJurnal dataJurnal = getDataDocumentServer;
ArrayListTerm dataTerm = new ArrayListTerm; for int i = 0; i dataJurnal.size; i++ {
max_jurnal_id = jurnal.getMaxJurnalID; if max_jurnal_id == 0 {
max_jurnal_id = 1; } else {
max_jurnal_id = max_jurnal_id + 1; }
jurnal.insertJurnalBarudataJurnal.geti; System.out.printlninsert
jurnal |
+ dataJurnal.geti.getJudul + |
+ dataJurnal.geti.getNama_penulis + | + dataJurnal.geti.getUrl_directory + |
+ dataJurnal.geti.getMaxjhtij + | + dataJurnal.geti.getTahun;
dataTerm = getDataPostingRDBMSdataJurnal.geti.getJurnal_id; for int j = 0; j dataTerm.size; j++ {
term.insertTermORBMSdataTerm.getj.getTerm, dataTerm.getj.getDfk,
dataTerm.getj.getNidfk, dataTerm.getj.getTfik, dataTerm.getj.getNtfik, dataTerm.getj.getW,
max_jurnal_id;
Pada proses update inverted index database index ready ORDBMS menggunakan stored procedure
update_term_ordbms
yang ditunjukkan pada Listing 4.28.
Listing 4.28. Stored procedure update_term_ordbms untuk update inverted index
pada database index ready ORDBMS
create or replace PROCEDURE update_term_ORDBMS
p_term IN VARCHAR2, p_dfk IN NUMBER,
p_nidfk IN NUMBER, p_tfik IN NUMBER,
p_ntfik IN NUMBER, p_w IN NUMBER,
p_jurnal_id IN NUMBER IS
v_count_term NUMBER; v_count_term_jurnal NUMBER;
v_count_term_nested_ada NUMBER; --v_jurnal_id NUMBER;
BEGIN --update table term whole term
UPDATE term SET dfk = p_dfk,
nidfk = p_nidfk WHERE term = p_term;
-- update table posting nested table UPDATE TABLE SELECT posting_term FROM term WHERE term = p_term
SET tfik = p_tfik, ntfik = p_ntfik,
w = p_w WHERE jurnal_posting IN
SELECT p.jurnal_posting FROM Jurnal J, Term T, Table T.posting_term p
WHERE p.jurnal_posting = ref j AND j.jurnal_id = p_jurnal_id;
COMMIT; END update_term_ORDBMS;
term.insertTermBaruterm.getTerm, max_jurnal_id, term.getTfik;
System.out.printlninsert Term + dataTerm.getj.getTerm + |
+ max_jurnal_id + | + dataJurnal.geti.getJudul + |
+ dataTerm.getj.getTfik; }
updateStatusServerdataJurnal.geti.getJurnal_id; }
System.out.printlnINDEXING SELESAI; }
Proses create inverted index pada database index ready ORDBMS menggunakan stored procedure
insert_term_ordbms
seuai dengan algoritma Gambar 3.5 yang ditunjukkan pada Listing 4.29.
Listing 4.29. Stored procedure insert_term_ordbms untuk create inverted index
pada database index ready ORDBMS
Listing 4.30. Method untuk mengambil kumpulan term pada tabel terms dan
posting
create or replace PROCEDURE insert_term_ORDBMS
p_term IN VARCHAR2, p_dfk IN NUMBER,
p_nidfk IN NUMBER, p_tfik IN NUMBER,
p_ntfik IN NUMBER, p_w IN NUMBER,
p_jurnal_id IN NUMBER IS
v_count_term NUMBER; v_count_term_jurnal NUMBER;
v_count_term_nested_ada NUMBER; --v_jurnal_id NUMBER;
BEGIN -- cekTerm
select COUNTterm INTO v_count_term from term where term = p_term;
dbms_output.put_linecek jumlah term ||v_count_term; -- cekTermNestedJurnalAda
SELECT countt.term INTO v_count_term_jurnal FROM Jurnal J, Term T, Table T.posting_term p
WHERE p.jurnal_posting = ref j AND t.term = p_term
AND j.jurnal_id= p_jurnal_id; dbms_output.put_linecek jumlah nested table ||v_count_term_jurnal;
-- cek kata sudah ada atau belum, jk belum insert whole table IF v_count_term = 0 THEN
insert_term_wholetablep_term,p_dfk,p_nidfk,p_tfik,p_ntfik,p_w,p_jurnal_id; ELSIF v_count_term_jurnal = 0 THEN
insert_posting_nested_tablep_term,p_tfik,p_ntfik,p_w,p_jurnal_id; END IF;
END insert_term_ORDBMS;
public static ResultSet getDataPostingServerint id_document { String query;
query = SELECT t.STEMMED_WORDS, p.frequency, d.title, t.dfk, t.nidfk, p.ntfik, p.w
+ FROM documents d, posting p, terms t + WHERE p. id_document = d.id_document
+ AND p. id_term = t. id_term + AND p.id_document = + id_document;
4.5.5 Halaman Edit Makalah