如何在个人博客引擎 Hexo 中添加 Swiftype 搜索组件
在您现在看到的我的博客站点,后台使用的是 Hexo 作为博客引擎,但是默认集成的搜索组件是进行 form 提交到 Google 进行搜索的,为了更好地体验,本文介绍如何在 Hexo 博客中集成 Swiftype 搜索组件。
更好的阅读体验在我的博客原文地址:http://blog.parryqiu.com/2016/02/03/how_to_add_swiftype_search_to_hexo/
1. 关于搜索组件
站点中集成搜索组件,可以很大地方便用户进行快速查找博客内容,但是 Hexo 处理搜索默认的逻辑是:输入关键字后模拟 form 提交到 Google 进行搜索的。但是在「某些」开放的国家,Google 是不可以访问的。你可能想到可以模拟提交到贵国「高端搜索引擎」百度进行搜索啊,恩,我想了想,我还是告诉你如何接入更加方便的 Swiftype 比较好。
其实接入 Google 等搜索引擎,也是在 Google 收录了你站点的内容后才能搜索到的,用的其实就是 site: 语法搜索。
2. 效果预览
本站 接入 Swiftype 搜索组件后的效果如图所示。

3. Swiftype 搜索组件介绍
Swiftype 搜索组件的原理就是你提交站点给它,它立即对内容进行索引抓取,之后提供给你类似 JS SDK 一样的东西给你使用即可,设计的非常灵活、方便。

4. Hexo 接入步骤
4.1 注册账号
在 注册页面 注册一个账号。
4.2 添加站点
添加站点的 URL 或者站点的 SiteMap 给 Swiftype 以便它进行抓取,SiteMap 可以提交多个,如我站点的 SiteMap ,我都拆分进行了提交。
关于 Hexo 博客引擎如何生成站点的 SiteMap,请参见 hexo-generator-sitemap 插件或 hexo-generator-seo-friendly-sitemap 插件。
4.3 站点接入
Hexo 的接入非常方便,按照如下代码修改搜索模块即可。
<div class="search">
<input type="search" class="st-default-search-input" placeholder="<%= __('search') %>">
</div>
然后在页脚引入对应的 JS 代码即可,国内网络加载没有问题。
4.4 其他可配置项
可以通过 Swiftype 的控制面板修改如搜索结果、智能提示样式等,可定制化的地方很多;
Swiftype 还可以手动干预搜索结果以及对搜索结果进行强制分组等。
Swiftype 的控制面板中也提供了供您分析用户搜索的分析报表。
5. 结语
Swiftype 有一个试用期,到期后只会限制一些高级功能的使用,不影响搜索组件的试用。
总之,这应该是 Hexo 博客引擎一个比较优雅的搜索组件解决方案。
如何在个人博客引擎 Hexo 中添加 Swiftype 搜索组件的更多相关文章
- 如何在CSDN博客自定义栏目中添加“给我写信”
在"自定义栏目"中添加"连接"(将自己的微博,QQ空间和CSDN博客关联起来)很多人都做过.但是添加"给我写信"这个功能,用的好像不太多.此 ...
- 11个你应该知道的django博客引擎
这段时间一直在学python和django,准备写个小小的blog巩固下自己学到的东西,看到了GAE上的一些程序,大部分都是纯python的,想找一些基于django的,还真是难.无意中搜索到一篇文章 ...
- 发起一个开源项目:基于 .NET 的博客引擎 fluss
今天我们发起一个开源项目,它的名字叫 fluss,fluss 是 river 的德语. 百川归海,每一个博客就如一条河流,输入的是文字,流出的是知识,汇入的是知识的汪洋大海. 川流不息,fluss 是 ...
- 【博客美化】06.添加QQ交谈链接
博客园美化相关文章目录: [博客美化]01.推荐和反对炫酷样式 [博客美化]02.公告栏显示个性化时间 [博客美化]03.分享按钮 [博客美化]04.自定义地址栏logo [博客美化]05.添加Git ...
- 【博客美化】08.添加"扩大/缩小浏览区域大小" 按钮
博客园美化相关文章目录: [博客美化]01.推荐和反对炫酷样式 [博客美化]02.公告栏显示个性化时间 [博客美化]03.分享按钮 [博客美化]04.自定义地址栏logo [博客美化]05.添加Git ...
- 【博客美化】05.添加GitHub链接
博客园美化相关文章目录: [博客美化]01.推荐和反对炫酷样式 [博客美化]02.公告栏显示个性化时间 [博客美化]03.分享按钮 [博客美化]04.自定义地址栏logo [博客美化]05.添加Git ...
- 博客网站-Hexo+GitHub+Netlify
Hexo+GitHub+Netlify一站式搭建属于自己的博客网站 https://www.cnblogs.com/kerbside/p/10130606.html https://hhongwen. ...
- ubuntu上部署github博客,利用hexo
安装Node.js三种安装方法,前两种是我安装过的,后一种是 Google 到的. #####①:apt-get 安装在 终端 输入 nodejs 或者 npm ,如果没有安装会提示你进行安装,命令如 ...
- 搭建个人博客 github+hexo
其实相关的教程网上有很多很多,不过就是很多很多,而且技术大神们每个人都写得不一样啊喂,为什么我明明就是一步一步按照教程来的还是有那么多乱七八糟的错?...所以我决定写此篇记录一下我搭建博客的过程以及我 ...
随机推荐
- js 自动插入分号
先来看一个例子: function get(){ return { a:1 } } var r=get(); console.log(r); 似乎r的值应该是{a:1},然而运行结果却是undefin ...
- Ajax表单异步上传(包括文件域)
起因 做前台页面时,需要调用WebAPI的Post请求,发送一些字段和文件(相当于把表单通过ajax异步发送出去,得到返回结果),然后得到返回值判断是否成功. 尝试 先是尝试了一下 "jQu ...
- SharePoint 客户端对象模型共用ClientContext的坑
首先请看代码 private static void Main(string[] args) { Test2(); } private static void Test2() { var client ...
- crm on premise IFD 部署下提供oauth 2.0 集成自定义应用
很多情况下我们的CRM系统会和弟三方应用集成,一般情况我们会开发一个中间站点来提供web api 给弟三方应用. 参考:http://alexanderdevelopment.net/post/201 ...
- iOS之9.3真机适配-Could not find Developer Disk Image问题
Could not find Developer Disk Image 这是由于真机系统过高或者过低,Xcode中没有匹配的配置包文件,我们可以通过这个路径进入配置包的存放目录: /Applicati ...
- iOS 疑难杂症 — — UIButton 点击卡顿/延迟
前言 一开始还以为代码写的有问题,点击事件里面有比较耗时卡主线程的代码,逐一删减代码发现并不是这么回事. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.c ...
- iOS 学习 - 20 UICollectionView 移动 Item ,类似背包
有100个 item,数据源只有20个,只能在 20 个之间移动,防止 item 复用,出现 bug 方法一:苹果自带 //UICollectionViewDataSource- (BOOL)coll ...
- ns3重要类
1. simple-ref-count 递归模板,使得通过定义T:SimpleRefCount<T>使得T类都具有计数功能 template <typename T, typenam ...
- LoadRunner 11 安装步骤
loadrunner 安装步骤: LoadRunner11下载: 在网上可以搜索到,在这个就不提供了. LoadRunner11原理: 破解方法和以前版本相同,我用的是LR8.0的破解文件,同样实用 ...
- RMAN-03002, RMAN-06059, ORA-19625 and ORA-27037 When Running RMAN Backup of Archivelogs
RMAN备份数据库时,出现下面错误错误信息: Starting backup at 25-MAY-15 current log archived allocated channel: ORA_DISK ...