Bigram Full-Text Search v0.2.2


2 Comments

正式釋出!這裡有 Changelog

我應不應該給相關文章正式作個 Widget 呢?1可是這個 Plugin 的功能應該是搜尋耶…


  1. 目前是作了自己在用啦! 


關於 WordPress 2.3 Beta 1 的 SEO-friendly URL redirection


3 Comments

Kirin Lin 那邊看到, WordPress 2.3 Beta 1 多了這個語焉不詳的功能,而剛才 svn update 時碰巧發現這個新奇的檔名 canonical.php ,本來只是好奇是什麼樣的功能會取名為 canonical ,沒想到就順便解開了 SEO-friendly URL redirection 是什麼的謎底——

SEO-friendly URL redirection 這個功能,就是讓每頁的網址固定,例如這個(原始網址)或是這個(舊版靜態連結),最後都一樣會被導向到這裡

同時還有統一域名的功能,如果你設定的 Blog 網址是 blog.bcse.info ,使用者輸入 www.blog.bcse.info 時,就會被自動修正為 blog.bcse.info 。

換句話說,只要升級到 WordPress 2.3 ,就不需要再裝 Permalink RedirectEnforce www. Preference 兩個外掛囉!

至於為什麼這樣對於搜尋引擎有益,我想可能是

  1. 避免被誤以為是重複內容而受懲罰。
  2. 讓搜尋引擎紀錄到最漂亮的網址。

另外附一張外掛更新通知圖(看來果然要是在 WordPress Extend 登記有案的 Plugin 才能享受到此功能):

WordPress 外掛更新通知

Bigram Full-Text Search rev.35


1 Comment

昨天整理 WordPress 資料庫時發現, Bigram Full-Text Search 如果設定可在迴響中搜尋,好像會殘留下一些垃圾迴響?今天想來修這個 bug ,才發現更嚴重的 bug ——目前根本就不會產生迴響的 N-gram 啊! orz (原因只是打錯一個變數)所以到底會不會殘留垃圾迴響… 還有待觀察。我最近完全沒有任何 Spam ,不知道是因為裝了 Comment Timeout 還是 Downtown Host 自動幫我擋下這些異常流量。

本來只想修好這個 bug 就好,但是只改一行感覺不夠誠意,所以低調的寫了一些其他更新:

  1. 修復一些可能出現的 Notice 和 Warning 。
  2. 支援部份 boolean full-text search operators
    目前已支援的有 +, -, ~, *, " ,未支援的則有 > <, ( ) 。雖然我說支援 " ,但因為本 plugin 是採用 Bigram 分詞,「+"搜尋字詞"」找不到東西,所以輸入「+"搜尋字詞"」會被自動轉換為「+搜尋 +尋字 +字詞」。
    也因為現在全面採用 boolean full-text search operators ,關聯性的計算方式就隨之改變,搜尋結果的順序會和過去有所不同,哪一種比較好我也不確定。
  3. 設定不於迴響中搜尋時,則不更新 wp_comments_ngram 表格。

有興趣試用的話,可以從 Google Code 下載最新版本:

Bigram Full-Text Search (Latest revision)

Update: 突然想到關於 " 的處理方式… 或許可以改成輸入「+"搜尋字詞"」自動轉換為「+"搜尋 尋字 字詞"」,不過這樣會有中英文交雜的問題——目前 N-gram 是將歐文取出來放在最後。


From 2.3-alpha to 2.3-alpha


6 Comments

最近 WordPress 實在太多 security fix 了,為了 tagging 一直龜在 r5534 實在不是辦法…… 因此今天趁著有空更新了。

原來 Terms 功能早就寫好,只是自動升級時並不會將 Tags 轉換為 Terms ——可能是因為 Tags 的功能從來沒有正式釋出過,因此也就沒有製作這部份的轉換處理——導致我每次測試升級時都以為 Terms 尚未完成。

要從 2.3-alpha 升級為 2.3-alpha 需要注意的事情有:

  1. 可能會有 Tags 變成 Categories
  2. Tags 轉換為 Terms 後,不會自動建立 Term Relationships
  3. Link Categories 轉換為 Terms 後,不會自動建立 Term Relationships
  4. 更新完這些 Term Relationships 後,記得重新計算 Count

No more categories and tags, but terms


1 Comment

WordPress 正在進行大變動,標籤、文章分類、連結分類未來都將整合為 Terms ,這個變動影響到 wp_categories 表格,以後就沒有這張表了,因此有一堆外掛及佈景都會壞掉,使用 SVN 版的人最近不要更新得太勤勞比較好 XD

新建一個 View 可能可以解決向下相容問題,不過 View 算是個新功能,必須 MySQL 5 以上才支援。


Bigram Full-Text Search v0.2.1


1 Comment

更新項目

其實跟 rev.18 一樣,差別只有搜尋迴響的功能完成了。

  • 新增選項頁面,其中包含以下功能:
    • 設定搜尋範圍是否包含迴響
    • 設定 N-gram 表格中是否包含 HTML ,如果包含的話,在搜尋框打 HTML 代碼能找到東西
    • 手動重建 N-gram 表格資料按鈕,設定完前兩個選項後必須按一下這個
    • 顯示目前 N-gram 表格的狀態,包含目前資料筆數、資料佔用空間及索引佔用空間這些資訊
    • 移除此 Plugin 按鈕,使用這個按鈕的話,它還會幫你刪除 N-gram 表格以及此 Plugin 的設定值
  • 不要將重複的 N-gram 字詞刪除,這樣對計算關聯性應該比較有幫助
  • 刪除文章時,同時也刪除 N-gram 表格中對應的資料(不過這不影響搜尋結果,舊版中並不會因此找到已刪除的文章)
  • INSERT LOW_PRIORITY 改成 INSERT DELAYED ,這好像才真的對效能有所幫助

已知問題

  • 已安裝舊版使用者更新時可能會看見一堆 Warning ,說 array_search() 第二個參數型態錯誤之類的… 不過這個訊息只會出現一次,而且不影響更新。

隱藏功能

  • 因為 N-gram 表格、 Full-text index 都已經建好了,所以順便加上一個列出相關文章的功能:bfs_GetRelatedEntries() ,在 Theme 中加上 <ul><?php bfs_GetRelatedEntries(); ?></ul> 即可。

計畫中功能

  • 設定不於迴響中搜尋時,則不建立 wp_comments_ngram 表格
  • 支援 boolean full-text search operators
  • 可選用 Trigram (讓 Index 變得更大,但結果可能更準確)

Permalink Redirect


1 Comment

Permalink Redirect 是一個用來統一文章連結的 WordPress Plugin ,可避免讓搜尋引擎索引到重複的內容。例如目前這篇文章的連結就有兩個:

  1. http://blog.bcse.info/?p=407
  2. http://blog.bcse.info/wordpress-permalink-redirect/

而使用此 Plugin 後,第一個網址會以 301 Permanently Moved 方式轉址到第二個網址。此 Plugin 同時也提供舊連結格式轉換為新連結格式的處理方案,其實這才是我想用這 Plugin 的最大原因,但是很可惜的是無法適用於本站。因為我本來是採用文章的 primary key 作為網址,而且只有這個參數,現在想改為文章標題,但系統無法判斷 http://blog.bcse.info/407 這樣一個網址中的 407 到底是 primary key 還是標題…

所以現在我只好把舊文章的 post slug 全部改成與 primary key 相同,這樣的話就算依照新的格式,產生的網址也還是一樣的。下 SQL 直接修改很快,只消一句 query :

UPDATE `wp_posts` SET `post_name` = `ID` WHERE `post_type` = 'post';