over 10 years ago
先貼解法:
- 在 Gemfile 裡加上
ransack
。 - 把
lib/search.rb
的內容換成 https://github.com/xdite/discourse/blob/ransack/lib/search.rb
解釋
這是在上週我為 g0v 架設論壇 時,遇到的問題。discourse 上的搜尋基本上碰到中文和日文漢字不會動。(這裡有 討論串)
https://github.com/xdite/discourse/blob/ransack/lib/search.rb
( 具體 commit 請看 https://github.com/xdite/discourse/commits/ransack 可見所有我的詳細解法)
簡單來講是 CJK 以及非 latin 文雖然在 postgre SQL 上搜尋不好,但還沒到 unsearchable 這麼差。discourse 會搜不到中文,是因為他不用 gem ,自幹 full-text search,結果把切字系統整個搞爛了。我把他拆開,然後適度的導入 ransack 就修好了。
雖然是這樣也花了我 3hr,然後這三個小時我的 FB 牆上寫了滿滿的髒話....
我每次修 Discourse 程式碼或改他們的架構都會覺得他們腦袋是裝屎。
(很抱歉,貢獻程式碼的人都很偉大,照理說我不應批評貢獻者,甚至不應批評人家腦袋裝屎,但實在是大多數的 Rails Developer 去改他們程式碼,半個小時候就會想罵這句話....)
什麼都自幹,login 也自幹,權限系統也自幹,deploy 架構也自幹,search backend 也自幹。自幹就算了,全部都是用錯的想法在想解法,連帶解法也是大便。然後就蓋起一座大便之塔 -_-