搜索是个大学问

Discuz开启全文搜索(非sphinx,只改3行代码)

此文摘自 https://www.discuz.net/thread-3661407-1-1.html,感谢作者。

方法一
首先在后台【用户】【用户组】在相应要开启的用组的【基本设置】【允许全文搜索】中设置为【是】即可。
优点:可以自行设置要开启的用户组,方便灵活。
缺点:当然缺点也很明显,这项设置只在高级搜索中管用,并且只是在关键词输入框旁边多了一个复选框,提示要不要使用全文搜索,而且还是默认未勾选状态,这明显让菜鸟尤为抓狂,也会增加使用成本。

Discuz开启全文搜索(非sphinx,只改3行代码)
discuz全文搜索

方法二
修改模板文件
/template/default/common/pubsearchform.htm

<input type="hidden" name="srchtype" value="title" />

改为:

<input type="hidden" name="srchtype" value="fulltext" />

这样在论坛头部的搜索就默认支持全文搜索了,但这并不彻底,因为点开的搜索结果页面如果换一个关键词再次进行搜索就又不默认支持全文搜索了,所以还要继续改模板文件:/template/default/search/pubsearch.htm ,找到:

<input type="text" id="scform_srchtxt" name="srchtxt" size="45" maxlength="40" value="$keyword" tabindex="1" x-webkit-speech speech />

在后面加上

<input type="hidden" name="srchtype" value="fulltext" />

再找一段差不多的代码:

<input type="text" id="scform_srchtxt" name="srchtxt" size="65" maxlength="40" value="$keyword" tabindex="1" />

再后面加上:

<input type="hidden" name="srchtype" value="<!--{if !empty($srchtype)}-->$srchtype<!--{else}-->fulltext<!--{/if}-->" />

这样就保证不管在那里搜索都默认开启全文搜索功能,体验很好。但是后台就算关闭了某用户组的【允许全文搜索】功能也对此方法无效,此文件一旦被修改,就是对所有用户都开启了允许全文搜索功能。