关于discuz 不能全文搜索的问题
這個問題客服反饋很多次了,以為discuz 默認搜索只能搜標題,除非配置了sphinx全文搜索引擎。
但是之前比較老的員工說以前能用的,也就是discuz老版本。
今天突然想到是不是discuz縱橫搜索的關閉引起了,官網走了一遍后確實這個搜索引擎已經不維護了。
?
天氣比較涼爽,狀態也還可以,所以去看了一下搜索的源碼,發現有全文搜索的邏輯在,一遍測試后發現,原來是數據庫編碼和頁面編碼不統一,所以即使選擇全文搜索,也是找不到記錄了
?
在查看discuz的配置問題,congfig_global.php 發現有一項$_config['output']['forceheader'] = 1;?默認是1 ,改為了0,搜索就有記錄了。
?
研究這個配置的走向,發現原理是
處理結果的search_forum.php 頁 是不會渲染模板的,也就是頁頭不會有meta 設置的編碼類型。所以這個時候$_config['output']['forceheader'] ?= 1 就會強制php 用@header('Content-Type: text/html; charset='.CHARSET); 輸出一個編碼,
把$_config['output']['forceheader'] = 0; 后,php 就不輸出編碼,由瀏覽器判斷,這樣就可以和數據庫的編碼匹配,兩邊編碼一致,所以能搜索成功!
?
但是有個疑問,之前只是不能全文搜索,但是標題是可以搜索到的。這個我還沒弄明白什么意思。
轉載于:https://www.cnblogs.com/mctt/p/discuz_search.html
總結
以上是生活随笔為你收集整理的关于discuz 不能全文搜索的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinForm 之 程序退出
- 下一篇: wpf Webbrowser 乱码问题及