巧用分词搜索插件增强 WordPress 搜索性能

巧用分词搜索插件增强 WordPress 搜索性能

文章目录
文章目录
  1. 1. Erphp Search 分词搜索/搜索增强插件
  2. 2. dahuzi-search-analysis 中文分词搜索插件
  3. 3. 给 WordPress 增加快捷键直达搜索输入框

一直以来 WordPress 都有个问题,它的搜索功能采用了完全匹配的模式,很多时候都无法得到自己想要的结果,做得跟屎一样!举个例子,这里前不久发布了一篇文章说想给博客改名,搜索“博客改名”能精确命中该文,但如果没有安装分词插件增强 WordPress 搜索,搜索“博客改名字”是不会返回任何结果的!这时候咱就不得不主动更改关键词去扩大搜索范围,很影响用户体验。

你可能觉得这功能没啥用?错了…只要稍微留心下网页统计,其实访客用搜索的次数还真不少,但往往没有获得有用的结果(前提是你的网站上有相关内容)。我本人一直想增强 WordPress 的搜索功能,可是之前一直没用对关键词,也就没有找到合适的方案…有一段时间甚至想尝试引入搜索引擎来实现。

现在我终于发现原来有个类目叫:WordPress 分词搜索插件,其主要功能就是把咱键入的关键词拆开了在 WordPress 系统中去检索,然后把结果返回呈现出来。比如上面的例子,用了分词搜索插件后,原关键词可能会被拆成“博客 改名字”或者“博客 改名 字”,然后系统会根据这拆开的几个关键词去分别检索,按照插件后台设置的 And 和 Or 的组合条件最终给访客呈现相关页面。

这个分词的动作由插件自动完成,其分词语言逻辑取决于所接入的 API,有时候也不一定准……即便不准的时候,咱人为手动地在搜索关键词之间打空格也是可以实现分词搜索的(以前不行),挺好用。英文分词搜索软件我用不上,也没做相关测试,本文推荐两个完全免费的 WordPress 中文分词搜索插件,快去增强你的搜索功能吧!

1. Erphp Search 分词搜索/搜索增强插件

Erphp Search 是一款由模板兔开发的分词搜索/搜索增强 WordPress 插件,插件主要功能就是将用户搜索的关键字进行分析后进行拆分,然后进行分词搜索,从而达到搜索结果更智能、更广泛。该插件完全免费,内置了百度、腾讯和结巴 3 个 API 接口,百度腾讯的接口为远程调用需要进一步设置(需付费);结巴中文分词则完全开源,作者也将结巴分词的数据完全集成进了主题文件,免费使用。所以…你即将获得一个超过 100MB 的 WordPress 插件。

Erphp Search 分词搜索插件可选的设置就两个:一是选择 API(其实已经没有选择了);二是对搜索结果组合条件的判定,“AND”需要同时包含所有关键字,“OR”则仅需包含其中某一个关键字,具体就看你的需求了…我选的是 AND。

Erphp Search 分词搜索/搜索增强插件
Erphp Search 分词搜索/搜索增强插件

WordPress 搜索功能本身就是一个体力活,在文章很多的情况下搜索是很耗资源的。如果增加 Erphp Search 分词搜索,特别是采用结巴本地词库,势必会对搜索速度产生一定的影响。作者自述采用结巴接口本地处理分词建议服务器至少 4G 内存,但我实际测试并不需要如此高的性能…且如果搜索不工作的话本身是不消耗性能的,所以请放心安装吧。

Erphp Search 分词搜索插件免费下载

密码 UFSw 大小 23.7MB 更新 06/23/2024 价格 ¥0.00
已经回复?刷新

2. dahuzi-search-analysis 中文分词搜索插件

该插件同样完全免费,体积小巧(仅二十行代码)没有任何设置项,其中文分词调取了Pullword 分词接口,需要将关键词传输到远端分词后再返回本地搜索,我本人在测试站使用是能正常工作的,不过很遗憾它在我的两个主站(阿里云/宝塔)都无法启用,提示有核心错误。插件原作者对其进行了 php 加密,我也就无法得知其具体的出错原由了~

「dahuzi-search-analysis.zip」中文分词搜索插件

密码 Zc3u 大小 3.6KB 更新 06/23/2024 价格 ¥0.00
已经回复?刷新

3. 给 WordPress 增加快捷键直达搜索输入框

Well,我这小博客因为个人喜好的原因,目前俭省了部分功能,甚至把一些常用的按钮都做了隐藏,比如搜索框。最近用搜索的频率越来越多了……所以,我搞了个快捷键。请按下/,是不是自动弹出搜索框了?怎么实现呢?其实很简单,仅需要将以下代码添加footer.php中即可。

    <script>
    (function($){
        $(document).keydown(function(e){
            // 检查按下的键是否是 '/' 键(键码 191)
            if(e.keyCode === 191){
                // 获取事件的目标元素
                var target = e.target;
                // 检查目标元素是否是输入框、文本区域或具有 contentEditable 属性的元素
                var isInputField = target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;
                // 仅当目标元素不是输入框、文本区域或可编辑元素时,才执行操作
                if(!isInputField){
                    // 阻止默认行为
                    e.preventDefault();
                    // 模拟点击 .grve-toggle-modal 元素
                    $('.grve-toggle-modal').click();
                    // 延时 300 毫秒后聚焦到搜索输入框
                    setTimeout(function(){
                        $('#grve-search-modal-textfield-input').focus();
                    }, 300);
                }
            }
        });
    })(jQuery);
    </script>

你完全照搬代码是不行的,因为这段 JavaScript 代码必须绑定正确的类,可以参考着修改下。如果实在不懂的话,那就问问 AI 吧,因为我也是问的 ChatGPT……


问:我的网站使用搜索比较复杂,首先要点击按钮,弹出窗口;然后再点击进输入框。

按钮:<a href="#grve-search-modal" class="grve-toggle-modal">
输入框:<input id="grve-search-modal-textfield-input" type="text" class="grve-search-textfield grve-leader-text grve-border" value="" name="s" autocomplete="off">

答:基于您提供的信息,如果您的网站搜索功能涉及点击一个按钮来弹出一个模态框,然后在模态框中输入搜索词,我们需要编写一段 JS 代码来处理这一系列的交互…代码就上边那段。

请将上述代码添加到您的 WordPress 主题的 footer.php 中,或通过在 functions.php 文件中创建一个适当的wp_enqueue_script操作来添加。这段代码会在按下/键时触发点击事件,打开模态框,并聚焦到搜索输入框。

由于模态窗口可能需要一些时间来加载和显示,所以我们在这里添加了一个setTimeout,以确保搜索输入框有足够的时间变得可用。500 毫秒的延迟是一个经验值,您可能需要根据您网站的实际响应时间来调整这个值。您还可以考虑添加一些检查来确认模态框确实已经打开,并且是可见的,之后再聚焦输入框。

1500 1125 Kevin's
「巧用分词搜索插件增强 WordPress 搜索性能」有 10 条评论
  • 111
    09/19/2024 at 16:57 回复

    看看这个插件

  • NNND
    08/23/2024 at 08:01 回复

    我擦 复制都要银子了 哈哈

  • 的头像
    Jeffer.Z
    04/11/2024 at 17:16 回复

    应该没人用我得搜索,毕竟我自己都不用,?

  • 的头像
    威言威语
    04/10/2024 at 16:40 回复

    WP的搜索确实比较一般,我觉得搜索分词之后,优先是and,然后出or。不能只是and。Wordpress自带的搜索,假如你自己手动空格分词,就是按照and来搜索的。

  • 趣知识
    04/09/2024 at 15:53 回复

    好几年没用wp了,有啥新东西了吗?

  • 的头像
    皇家元林
    04/09/2024 at 14:33 回复

    估计搜索我博客的人不多吧

  • xige
    04/09/2024 at 00:35 回复

    近期是开启了折腾模式,好几篇都在折腾哈,这是好趋势

  • 平安家属子痕
    04/08/2024 at 22:05 回复

    这个好,如果有是资源站或者内容站,这个就有用的多。

  • 的头像
    obaby
    04/08/2024 at 20:36 回复

    我是基于结巴分词直接手搓的搜索代码,哈哈哈。这个有插件就方便多了

    • 的头像
      Kevin
      07/18/2024 at 11:20 回复

      为什么我记得我回复过这些评论,,,但页面上还是没有呢!!!

发表评论

请输入关键词…