JApplet與Web Server做溝通

Applet除非是內部或自己使用時,可以直接使用JDBC來連接資料庫,而一般對外開放的服務如果讓Applet直接連接到資料庫,需要開port讓Clinet 的Applet來使用,在安全性上相對的十分危險。

此時可以利用一個中繼的Sokcet Server或是Web Server來當與資料庫連接的proxy代理服務器,如此Apllet只要連接Web Server,對Server提出需求,而Server會依需求與資料庫做溝通,並回傳Applet要求之資料,如此可以做成多層式的架構來解決Applet資料取得之問題。

AppletWeb1.jpg

範例設計上有一個輸入框JTextField可以輸入要傳給Server的資料內容,而下方的JTextArea是承接從Server回傳的資料內容,按鈕則可進行動作Action。

Read More

apache lucene-建立自己的搜尋引擎-刪除已建立索引資料

當索引資料已被建立,需要刪除此筆資document料時,只要利用索引key值查到此筆資料document,然後利用deleteDocuments來刪除此筆資料document。

lucene有二種索引存放方式

  1. RAM Directory記憶體,速度快,但程式結束後資料就不見了
  2. FS Directory檔案系統,資料永久存在,一般比較常用

程式範例先建立二筆資料document,然後對第一筆資料document的test這個key field做刪除動作。此範例使用Ram Directory記憶體來存放索引值,可以與上一篇範例製作索引檔做比較。

Read More

apache lucene-建立自己的搜尋引擎-查詢資料

搜尋引擎最重要的功能就是查詢資料了,當建立好索引檔後,就可以針對索引檔內容進行查詢,索引資料可分為有做分詞及未做分詞,未做分詞的索引資料,只有全部內容均相同才會找到此筆資料,有做分詞者,則依分詞類型,可能有單字索引,雙字索引或中文字詞索引等,索引做的越好,搜尋到的資料會越精準。

資料Field也分成儲存及不存儲二種,當選擇儲存Store.YES時,查詢到此筆資料時則可以直接取用,不過此方法會佔用較多的空間,不存儲方法Store.NO則相反。

索引資料內容如下:

apache lucene

Read More

apache lucene-建立自己的搜尋引擎-索引檔

apachelucene是一套opensource的Search-Engine,搜尋效果比直接使用資料庫條件like還要來的好,而且也不會佔用到資料庫的資源,只需要使用到硬碟的IO,所以可以把搜尋引擎另外做到另一個硬碟,或是放到另一台主機上,單獨成搜尋引擎Server,設計成Multi-Tires架構。

在使用apache lucene時,需要先把資料建立成索引檔,搜尋時則直接取用索引資料,來加快查詢的速度,不同類型的資料可以依需求建立成不同的搜尋索引檔,以下範例是如何建立一組索引檔。

索引檔內容如下圖:

Read More