2012年8月29日 星期三

在 MySQL 中做全文檢索

因為想要能夠提供一個 API,能夠回應資料庫當中哪些資料包含了指定的 key
因此查了一些資料,目前是打算用 MySQL 的 FULL TEXT SEARCH 的功能。

要使用 MySQL 的全文檢索,資料表型態必須是 MyISAM,同時要做全文檢索的欄位型態要是 FULLTEXT
然後對該欄位建立 FULLTEXT 類型的索引。(可參考官方文件 [1] 的說明)
使用時可以使用 MATCH (...) AGAINST (...) 敘述來進行全文檢索。
MATCH (...) 裡面指定的是要做全文檢索的欄位名稱,AGAINST (...) 裡面則是指定要搜尋的關鍵句。
它回應的會是一個數字,表示的是欄位內容跟關鍵句的相似度,如果完全不相似就會回傳 0。

2012年8月27日 星期一

Must qualify the allocation with an enclosing instance of type

今天在寫某個程式時遇到的問題~
eclipse 回報「Must qualify the allocation with an enclosing instance of type」這個錯誤訊息
稍微查了一下,是因為我使用了 inner class,然後又在 static 的函式中嘗試使用 inner class 造成的

2012年8月24日 星期五

清除 StringBuilder 的內容

在 Java 的 StringBuilder 中,並沒有提供 clear() 之類的方法可以清除內容
網路上可以查到兩種方法去清除內容,一個是用 delete(),另一個則是 setLength()
官方文件中似乎沒有提到哪種比較好
根據 [1] 的討論,應該是 setLength() 效率會比 delete() 稍高。

2012年8月23日 星期四

JavaScript 驗證數字

要驗證某個變數的值是不是數字,在 JavaScript 當中好像用 Regular Expression 結果會怪怪的
我試了好幾種不同的 Regular Expression,但用 match() 時都有些奇怪的問題
經由同事的協助,發現 [1] 當中 Joel Coehoorn 的回應~

2012年8月22日 星期三

ArrayList 與 LinkedList 的效率比較 (未完待續)

網路上能夠獲得的資料大概都是說 ArrayList 擅長隨機讀取
而 LinkedList 擅長隨機插入和刪除資料~
不過目前根據我自己跑出來的測試結果,刪除我還沒測試
但插入尾端跟隨機插入,在我的測試當中都是 ArrayList 大勝......囧"
原因不明,不知道是不是我的測試方法有問題~

2012年8月20日 星期一

在 Java 中使用 SQLite Database

SQLite Database 是輕量級的關聯式資料庫
在過去要使用關聯式資料庫,都必須架設像是 MySQL、SQL Server 等等的大型資料庫系統
對於某些會被拿來拿去的移動式程式來說相當不合用
雖然有微軟的 Access 可以達到移動式資料庫的目的,但是 Access 本身並沒有索引的設計
效率不佳,能夠承受的同時使用人數也很少~
現在有了 SQLite Database,相對於 Access 提昇了不少效能
但在 Java 中並沒有內建 SQLite 的 JDBC driver,而 SQLite 官方也沒有提供
因此網路上可以找到很多各自發展的 SQLite JDBC driver。
這裡使用的 driver 是 Xerial 的 JDBC driver [1]
使用原因...看起來他更新比較頻繁,而且用的人好像比較多 XD

2012年8月16日 星期四

(暫存) 在一個 App 當中呼叫另一個 App 的函式

最近可能要接下同事負責的 Android 的程式碼,看到裡面拆成兩個專案
一個是前端的 UI,另一個是後端處理的 API
所以先記錄一下呼叫別的 App 的 API 的方法~

1、How to call one android application from another android application

在 Java 驗證 Public IP 的方法

首先要知道的是,依據 RPC 1918 的規範,Private IP 的範圍如下
  • 10.0.0.0 - 10.255.255.255 (10/8 prefix)
  • 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
  • 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
因此要找出某台電腦上一系列的 IP 裡面哪些是 Public IP,就要把 Private IP 給濾掉。

2012年8月15日 星期三

java.io.IOException: Server returned HTTP response code: 401 for URL

在測試 HTTP 行為時,出現這個錯誤訊息
「java.io.IOException: Server returned HTTP response code: 401 for URL: ....」
參考 [1] 之後發現是因為網站需要使用基本的驗證(即在網址上面串 http://id:password@domain/ 這種形式)
因此需要加入標頭 Authentication 來讓伺服器做驗證。