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

2019年4月19日15:36:21 评论 268

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

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

打开 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}%’))";

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

发表评论

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