Relevanssi 用更出色的搜索引擎取代了标准 WordPress 搜索,该搜索引擎具有许多功能和可配置选项。您将获得更出色的结果,更出色的结果呈现效果 — 您的用户会感谢您。
安装激活 Relevanssi 搜索插件后,Relevanssi 会直接作用于默认的 WordPress 搜索框,实现 Relevanssi 自定义的搜索功能。也就是说,在前端,我们无需多余的设置即可使用 Relevanssi 插件。
请注意,使用 Relevanssi 可能需要大量(数百兆)的数据库空间(合理估算,请将wp_posts
数据库表的大小乘以三)。如果您的服务器中于数据库表的磁盘空间有限,使用 Relevanssi 可能会出现问题。在这些情况下,不建议使用 Relevanssi。
主要特征
- 搜索结果按相关性排序,而不是按日期排序。
- 模糊匹配:如果完整单词不匹配,则匹配部分单词。
- 查找仅匹配一个搜索词(或查询)或要求所有单词出现(与查询)的文档。
- 搜索带引号的短语,例如“搜索短语”。
- 创建自定义摘录,显示搜索结果的位置,并突出显示搜索词。
- 当用户点击搜索结果时,突出显示文档中的搜索词。
- 搜索评论、标签、类别和自定义字段。
- 多站点友好。
- bbPress 支持。
- 对古腾堡友好。
高级功能
- 调整标题、标签和评论的权重。
- 记录查询,显示最受欢迎的查询和最近没有命中的查询。
- 使用隐藏变量或插件设置将搜索限制在类别和标签内。
- 索引自定义帖子类型和自定义分类法。
- 索引短代码的内容。
- 基于成功的用户搜索的 Google 风格“您是不是要找?”建议。
- 支持WPML多语言插件和Polylang 。
- 支持s2member 会员插件、会员、群组、简单会员和其他会员插件。
- 高级过滤可帮助您按您想要的方式破解搜索结果。
- 搜索结果限制以提高大型数据库的性能。
- 使用简单的过滤器钩子禁用帖子内容和帖子标题的索引。
高级功能(仅限 Relevanssi Premium)
- 索引附件内容(PDF、Office、Open Office)。
- 改进了“您的意思是?”建议中的拼写更正功能。
- 在同一个多站点安装中跨多个站点进行搜索。
- 搜索并索引用户资料。
- 搜索和索引分类术语页面(类别、标签、自定义分类法)。
- 搜索并索引 wp_posts MySQL 表中的任意列。
- 为任何帖子类型和分类法分配权重。
- 为新帖子分配额外的权重。
- 让用户在 AND 和 OR 搜索之间进行选择,使用 + 和 – 运算符(AND 和 NOT)。
- 导出和导入设置。
- WP CLI 命令。
- 相关文章。
- 重定向搜索。
中文支持
Relevanssi 插件的索引功能需要把内容分词,然后进行索引,在英文内容中,内容的分词时直接用空格进行分词的,效率很高。而对于中文内容,用空格分词显然时不行的,我们需要自己实现中文分子的逻辑。下面是用 fukuball/jieba-php 实现的中文分词示例代码。
add_filter('relevanssi_remove_punctuation', function($str){
ini_set('memory_limit', '2048M');
ini_set('max_execution_time', '300000');
set_time_limit(0);
\Fukuball\Jieba\Jieba::init();
\Fukuball\Jieba\Finalseg::init();
$string = \Fukuball\Jieba\Jieba::cutForSearch($str);
return implode(' ',$string);
});
调整索引设置
添加了以上代码后,我们还需要调整 Indexing 设置,设置 Minimum word length 的值为2,因为长度<2 的词是中文的单字,我们的网站不是新华字典,没必要对每个字进行索引。
如果索引的文章比较多,第一次建立索引时,需要的时候可能比较长,我们耐心等待他索引完就可以了,后续的索引时增量索引,就比较快了。
索引建立完成后,我们就可以愉快的使用 Relevanssi 插件了。
推荐理由
经过对比测试,使用 Relevanssi 插件实现的自定义搜索相对 WordPress 自带的来说,搜索结果上相关性更高,还可以在文章中实现搜索词的高亮功能,非常实用。