2012年4月2日 星期一

Nutch 搜尋引擎

Nutch是一個open source的軟體,以Java為基礎的搜索引擎,它提供了架設搜索引擎所需的工具,利用Lucene為函式庫並架構於Hadoop之上,可以客製自己的收尋引擎。
Nutch 會要求使用者先建立URL集再將URL集傳送給 crawldb (抓取機器人)由 crawldb 負責更新和取得新的資訊直到完成使用者要求的深度後會再建立一個索引表,就可以利用Nutch來搜尋你所以建立的資料了。
Nutch雖然是個不錯的搜尋引擎,不過還是以關鍵是搜尋的方式做搜尋,如果能把語意的搜尋方式也加入,那應該是個不錯的搜尋引擎。

2012年4月1日 星期日

NoSQL

NoSQL有時也被認為是Not Only SQL的簡寫,是對不同於傳統的關係型資料庫的資料庫管理系統的統稱。兩者存在許多顯著的不同點,其中最重要的是NoSQL不使用SQL作為查詢語言。

資料存儲可以不需要固定的表格模式,也經常會避免使用SQL的JOIN操作,一般有水平可擴展性的特徵。

 一般大家所熟悉與使用的資料庫都是使用SQL語法的關聯式資料庫,為何會出現NoSQL呢? 主要 在網路應用程式規模日益龐大,盛行了好多年的關聯式資料庫主要的優點也變為缺點

傳統的 SQL 資料庫遇到的主要問題如下:

1.無分散式系統的版本,主要是因為 join 語法造成難以實作分散式系統。
2.嚴謹的欄位規則降低讀寫效能。

Google 和 Facebook 這兩家公司,為了處理它們的天量資料量和使用量,他們都分別的使用自己開發的 NoSQL 資料庫,Google BigTable、Facebook  Cassandra、Amazon S3 Dynamo資料庫,或是微軟Azure平臺儲存資料的方式均不使用SQL以換取高執行效能與應付大量使用者。

簡單的說這些不是用 SQL 操作的資料庫都泛稱為 NoSQL 資料庫。 另外早期的 NoSQL 資料庫以 Document Stroe 和 Key Value 的架構為主,不過,目前的 NoSQL 的發展已隨著不同的應用發展有不同的變化了。



參考資料:
NoSQL wiki:http://zh.wikipedia.org/wiki/NoSQL
NoSQL Databases:http://nosql-database.org/

2012年3月30日 星期五

Linked Data -- 鍊結資料

現在的網路是『文件間互相連接』的網路,電腦要做的工作只是將文件的內容顯示出來,不會理解文件的內容,搜尋引擎搜尋到的資料亦然,所以常常搜尋的結果都是用不到的垃圾資料,而語意網則是將網路達到『資料間互相連接』的網路,且讓電腦可以理解文件的內容,並可以自動完成語意搜尋工作,進而提高人們使用網路搜尋的效率,在語意網中使用RDF模型來描述檔案和檔案的連結,這些被連結起來的資料就稱作Linked Data。

Linked Data使用Http URI標示任一物件或概念,讓使用者可以簡單的透過這些URI來查詢資料,並透過RDF、SPARQL等標準來提供資料,在顯示的資料中會包含到其他URI的連結,使用者便可以依照這些URI找到更多資料。

目前Linked Data較主要的案例有DBpedia和FOAF,DBpedia是將wikipedia中的資料使用RDF模型建構成結構化的資料,以加強wikipedia的搜尋功能及其他應用,FOAF(Friends Of A Friend)是使用RDF描述一個人的個人資料和朋友,當使用者在閱讀一個人的FOAF檔案時,便可以透過檔案提供的URI連結到另一人的FOAF檔案。