使用 Jetpack 实现快速、优质的本地站点搜索

❥ 赞助商

如果你在 WordPress 网站上只有 20 篇帖子/页面,那么自托管 WordPress 网站中内置的搜索功能可能就能很好地完成任务。说实话,搜索是 WordPress 附带的一个非常酷的功能。但是随着网站的增长,你就会发现它的局限性。它在后台的工作原理我了解得不太多,但据我所知,它会在你的帖子标题和帖子内容上执行一个 MySQL LIKE 查询。它会尽力而为按相关性排序(例如,如果找到完全匹配的句子),然后主要按日期排序。

如果搜索对你网站非常重要(在 CSS-Tricks 上,网站内搜索的使用频率非常高),你可能会寻找其他选项。

**TLDR:**Jetpack 搜索开箱即用,非常不错,可自定义,并且几乎不需要任何操作。

十年旅程的快速回顾。

我最初使用的是 Google 站点搜索,它最终变成了 Google 自定义搜索引擎。毫无疑问,Google 的搜索结果非常出色,你可以将这个功能直接应用到自己的网站上。不过这里有一个问题。你的搜索结果中要么会有一堆广告,要么你必须使用 JSON API,费用为每 1000 次查询 5 美元,每天最多 10000 次。

我非常愿意为优质的搜索支付合理的费用,所以尝试过 Algolia 一段时间,因为他们有一个WordPress 插件。我发现它非常好用,但我无法获得理想的搜索结果。这里并不是针对 Algolia,它是一款非常棒的产品(我们在 CodePen 上的一些功能使用了它),但它并不完全适合这个网站的博客搜索对我来说

我考虑过尝试一些类似的强大选项,比如 Amazon Cloudsearch(它也有一个插件)甚至启动一个 Solr 实例(同样)。但我担心技术债务。多年来,我逐渐认识到,我喜欢的并且能够持续使用的解决方案是那些维护成本最低、上手最简单的解决方案。

当……我非常兴奋的时候。

Jetpack 推出了搜索功能,由 Elasticsearch 提供支持。因为……

  • 它是 Jetpack 的一个功能,我已经安装并正在使用。
  • 使用起来非常简单。我几乎只是将其打开。
  • 它开箱即用,搜索结果非常好。
  • 其中包含少量操作
    • 插入小部件。
    • 调整算法以提供更好的结果。
  • 我的服务器没有负载。
  • 我可以完全控制设计。它就像任何其他 WordPress 主题的 search.php 页面一样。

此外,还有过滤器!

另一个杀手级功能是能够为用户提供原始搜索的过滤器。它使用任何分类法,最有可能的是许多网站已经拥有的内置类别和标签。

在 CSS-Tricks 上,我可以搜索“网格”,然后进一步筛选我们专门标记为“CSS 网格”的内容。

WP Tavern 说得很好

Jetpack 专业版计划每年 299 美元的定价对于访问托管的 Elasticsearch 引擎来说极具竞争力。通常情况下,希望以最经济的方式在 WordPress 网站上实施 Elasticsearch 的开发人员必须在 Amazon AWS 或其他云服务上托管和管理自己的实例。这通常会带来更多持续的维护和设置工作。

我最喜欢这种搜索方式的原因是,它感觉就像WordPress 的方式

感觉它会得到永久的支持。此外,对于任何问题,我都会有一个支持网络,并且它会随着时间的推移而改进。这里几乎没有技术债务,事实上,我因此减少了技术债务。这与我做出类似决定使用 WooCommerce 来销售商品,将电子商务纳入 WordPress 体系,或者将我们的论坛从其他软件迁移到 bbPress 时的感觉类似。