Emlog 搜索优化 标题 + 全文搜索

avatar 2019年4月19日15:36:21 发表评论 211

最近发现,使用搜索功能时,只能搜索到标题含有关键词的文章,或者使用标签搜索到有相同标签的文章。

这显然不是我想要的,我希望搜索的结果是:标题中有关键字的文章排在前面,而文章中出现关键字排在后面。所以,就针对此问题进行了优化。具体如下:

打开 emlog 源码 /lib/controller/search_controller.php 文件。

1、找到下面这一行:

$sqlSegment = "and title like ’%{$keyword}%’ order by date desc";

将其修改为:

$sqlSegment = "and (title like ’%{$keyword}%’ or content like ’%{$keyword}%’ or excerpt like ’%{$keyword}%’) order by date desc";

2、接着找到下面这一行:

$logs = $Log_Model->getLogsForHome($sqlSegment, $page, $index_lognum);

在此行前面添加如下内容,用于查询含有关键词的文章:

$sqlSegment = "and (title like ’%{$keyword}%’) union (SELECT * FROM " . DB_PREFIX . "blog WHERE type=’blog’ and hide=’n’ and checked=’y’ and (content like ’%{$keyword}%’ or excerpt like ’%{$keyword}%’))";

文章多的绕过,因为这样会降低搜索效率。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: