今天才發現,原來 Zope 可以處理中文 ^^; [r1]
之前一直以為 Zope 不管是 ZODB、Structured Text 還是 ZCatalog,都還不能正常地處理、搜尋中文內容,但其實在使用 Unicode 的情況下,CJK 的處理已經由 "zopechina":http://www.zopechina.com/ 的 "CJKsplitter":http://zope.org/Members/panjunyong/CJKSplitter 和 "ZopeChinaPak":http://zope.org/Members/panjunyong/ZopeChinaPak 作好了。只要安裝這兩個 product 就可以讓 Structured Text 和 ZCatalog 處理中文 (ZODB 的部分尚未測試)。
安裝的步驟 (on Debian):
0 取得 "CJKSplitter 0.6":http://zope.org/Members/panjunyong/CJKSplitter/CJKSplitter-0_6/cjksplitter-0_6.tgz 和 "ZopeChinaPak 0.4":http://zope.org/Members/panjunyong/ZopeChinaPak/zopechinapak-0_4/zopechinapak-0_4.tgz。
0 解開到 instance specific Product directory。
所用的指令是::
$ cd /var/lib/zope/instance/default/Products
$ ls
$ tar xvfz /path/to/cjksplitter-0_6.tgz
$ tar xvfz /path/to/zopechinapak-0_4.tgz
$ ls
CJKSplitter/ COREBlog/ ZopeChinaPak/ mxmCounter/
你注意到我還安裝了 "mxmCounter":http://www.mxm.dk/products/public/mxmCounter/ 這個 product ;) 它是一個網頁計數器,蠻好用的。你可以在 "這裡":http://www.mxm.dk/products/public/mxmCounter/files/mxmCounter.1.1.0.tar.gz 下載 1.1.0 版。
0 不過包裝裡檔案的權限可能有問題,需要自己改一下。
改法是::
$ cd /var/lib/zope/instance/default/Products
$ chmod -R 644 CJKSplitter ZopeChinaPak
$ find CJKSplitter ZopeChinaPak -type d -exec chmod 2755 {} \;
$ chown -R root.root CJKSplitter ZopeChinaPak
0 重新啟動 zope。
使用 Debian 套件安裝的話,這樣作::
$ /etc/init.d/zope restart
0 到這裡,Structured Text 就可以 _正常地_ 讓 **中文** 變化各種格式了。
0 至於要讓 "COREBlog":http://coreblog.org/ (1.0 release) 能作中文搜尋,重點是讓 COREBlog 選用適當的 Splitter (也可以參考 COREBlog 0.6b 的"說明":http://coreblog.org/howtos/search_howto_html,COREBlog 從這一版開始支援 ZCTextIndex):
- 建立 COREBlog instance 的時候進行選擇。
0 要勾選 Create ZCTextIndex for serch。
0 Stop Words 選 Don't remove stop words (這是預設值)。
0 Word Splitter 選 CJK Splitter。這應該是給 Unicode 用的,如果選 CJK BIG5 splitter 的話,分辨出來的單字會變成亂碼。
0 OK
- 已經建好的 COREBlog instance,要把 lexicon 刪除掉重建。
0 到已建好的 COREBlog 的 Contents 頁面去,把其下的 "lexicon" 給殺了。
0 從右上角選擇 ZCTextIndex Lexicon,Id 同樣取為 "lexicon",而 "Case Normalizer", "Stop Words", "Word Splitter" 和上面新建 COREBlog 時選成一樣就好了。
0 回到 COREBlog instance 裡的 Entry,選擇畫面下面的 Recatalog,讓 lexicon 取得新的索引資料。
0 OK
0 最後,當然要記得把 COREBlog instance 裡的 modules/index_html 的 searchform 給打開。這樣就完成了,你的 COREBlog 現在可以搜尋中文。
至於 Plone 的中文搜尋,似乎還要改 portal_catalog 的型態,目前沒時間弄。我的 Plone 都還停在 1.0.5,以後再試試這個部分。
.. [r1] "TZUG related discussion":http://www.zope.org.tw/Forum/Tech/Zope/946686512285
.. [r2] Structured Text 的說明文字,"Help on Structured Text":http://www.zope.org/Members/millejoh/structuredText
之前一直以為 Zope 不管是 ZODB、Structured Text 還是 ZCatalog,都還不能正常地處理、搜尋中文內容,但其實在使用 Unicode 的情況下,CJK 的處理已經由 "zopechina":http://www.zopechina.com/ 的 "CJKsplitter":http://zope.org/Members/panjunyong/CJKSplitter 和 "ZopeChinaPak":http://zope.org/Members/panjunyong/ZopeChinaPak 作好了。只要安裝這兩個 product 就可以讓 Structured Text 和 ZCatalog 處理中文 (ZODB 的部分尚未測試)。
安裝的步驟 (on Debian):
0 取得 "CJKSplitter 0.6":http://zope.org/Members/panjunyong/CJKSplitter/CJKSplitter-0_6/cjksplitter-0_6.tgz 和 "ZopeChinaPak 0.4":http://zope.org/Members/panjunyong/ZopeChinaPak/zopechinapak-0_4/zopechinapak-0_4.tgz。
0 解開到 instance specific Product directory。
所用的指令是::
$ cd /var/lib/zope/instance/default/Products
$ ls
$ tar xvfz /path/to/cjksplitter-0_6.tgz
$ tar xvfz /path/to/zopechinapak-0_4.tgz
$ ls
CJKSplitter/ COREBlog/ ZopeChinaPak/ mxmCounter/
你注意到我還安裝了 "mxmCounter":http://www.mxm.dk/products/public/mxmCounter/ 這個 product ;) 它是一個網頁計數器,蠻好用的。你可以在 "這裡":http://www.mxm.dk/products/public/mxmCounter/files/mxmCounter.1.1.0.tar.gz 下載 1.1.0 版。
0 不過包裝裡檔案的權限可能有問題,需要自己改一下。
改法是::
$ cd /var/lib/zope/instance/default/Products
$ chmod -R 644 CJKSplitter ZopeChinaPak
$ find CJKSplitter ZopeChinaPak -type d -exec chmod 2755 {} \;
$ chown -R root.root CJKSplitter ZopeChinaPak
0 重新啟動 zope。
使用 Debian 套件安裝的話,這樣作::
$ /etc/init.d/zope restart
0 到這裡,Structured Text 就可以 _正常地_ 讓 **中文** 變化各種格式了。
0 至於要讓 "COREBlog":http://coreblog.org/ (1.0 release) 能作中文搜尋,重點是讓 COREBlog 選用適當的 Splitter (也可以參考 COREBlog 0.6b 的"說明":http://coreblog.org/howtos/search_howto_html,COREBlog 從這一版開始支援 ZCTextIndex):
- 建立 COREBlog instance 的時候進行選擇。
0 要勾選 Create ZCTextIndex for serch。
0 Stop Words 選 Don't remove stop words (這是預設值)。
0 Word Splitter 選 CJK Splitter。這應該是給 Unicode 用的,如果選 CJK BIG5 splitter 的話,分辨出來的單字會變成亂碼。
0 OK
- 已經建好的 COREBlog instance,要把 lexicon 刪除掉重建。
0 到已建好的 COREBlog 的 Contents 頁面去,把其下的 "lexicon" 給殺了。
0 從右上角選擇 ZCTextIndex Lexicon,Id 同樣取為 "lexicon",而 "Case Normalizer", "Stop Words", "Word Splitter" 和上面新建 COREBlog 時選成一樣就好了。
0 回到 COREBlog instance 裡的 Entry,選擇畫面下面的 Recatalog,讓 lexicon 取得新的索引資料。
0 OK
0 最後,當然要記得把 COREBlog instance 裡的 modules/index_html 的 searchform 給打開。這樣就完成了,你的 COREBlog 現在可以搜尋中文。
至於 Plone 的中文搜尋,似乎還要改 portal_catalog 的型態,目前沒時間弄。我的 Plone 都還停在 1.0.5,以後再試試這個部分。
.. [r1] "TZUG related discussion":http://www.zope.org.tw/Forum/Tech/Zope/946686512285
.. [r2] Structured Text 的說明文字,"Help on Structured Text":http://www.zope.org/Members/millejoh/structuredText
Posted by yungyuc
at 21:40,
0 comment,
0 trackback.
Navigate
- Previous: ZCTextIndex 測試 @2004/11/07
- Next: HBO Taiwan 的 LotR:TFotR 翻得真令人難過 @2004/11/07
Add a trackback
Please send trackback to: http://blog.seety.org/everydaywork/2004/11/7/70/trackback/.
Add a comment