Algolia使用教程 , 超详细傻子看都会
框架描述
发现网上Algolia这块的资料较少,就花了点时间从官网上整理了下,总结了几项常用的功能用法。
现在比较有名的Algolia提供了云搜索的服务。具体办法是我们将数据库的信息以JSON的格式上传到Algolia服务器,然后通过相应的API进行搜索,搜索可以是前端也可以是后端。这里描述的JavaScript的用法,不仅高效,而且对用户友好。Algolia的免费许可允许上传10,000条JSON数据,每月允许100,000次操作(包括上传和搜索),还是相当不错的。
准备工作
前往官网注册完账号之后,我们就可以登录dashboard控制和管理我们的数据了。

在上图中左边第三个钥匙按钮中,可以找到我们需要的API Keys

我们需要的是Application ID,Search-Only API Key和Admin API Key。
注意:Admin API KEY一定不要放在js里,因为这个key是用来上传,删除和操作我们的云端数据的,所以一定要保管好。
我们还需要创建索引库,用来存放我们的Json数据

点击Create Index 创建一个索引库,到这里准备工作就完成了
CURD操作
Add Objects
//algoliasearch的一次个参数传入账号提供的Application ID , 第二个传入Admin API Key
var client = algoliasearch('Application ID', 'Admin API Key');
//初始化一个索引库
var index = client.initIndex('index Name'); //声明Json数组
var objects = [{
firstname: 'Jimmie',
lastname: 'Barninger'
}, {
firstname: 'Warren',
lastname: 'Speach'
}]; //add objects
index.addObjects(objects, function(err, content) {
if (err) {
console.error(err);
}
});
响应的Json数据
{
"objectIDs": [
"myObjectID1",
"myObjectID2"
],
"taskID": 678,
}
Update Objects
//准备的Json数据
var objects = [{
firstname: 'Warren',
lastname: 'XX',
objectID: 'objectID'
}]; //algoliasearch的一次个参数传入账号提供的Application ID , 第二个传入Admin API Key
var client = algoliasearch('Application ID', 'Admin API Key');
//初始化一个索引库
var index = client.initIndex('index Name');
index.partialUpdateObjects(objects, function(err, content) {
if (err) throw err;
alert("success!");
console.log(content);
});
Delete Objects
//algoliasearch的一次个参数传入账号提供的Application ID , 第二个传入Admin API Key
var client = algoliasearch('Application ID', 'Admin API Key');
//初始化一个索引库
var index = client.initIndex('index Name');
index.deleteObjects(['Object-Id'], function(err, content) {
if (err) throw err; console.log(content);
});
Search Index
//algoliasearch的一次个参数传入账号提供的Application ID , 第二个传入Search-Only API Key
var client = algoliasearch('Application ID', 'Search-Only API Key');
//初始化一个索引库
var index = client.initIndex('index Name');
index.search({
query: 'XX'
},
function searchDone(err, content) {
if (err) throw err; console.log(content.hits);
}
);
响应的Json数据
{
"hits": [
{
"firstname": "Jimmie",
"lastname": "Barninger",
"objectID": "433",
"_highlightResult": {
"firstname": {
"value": "<em>Jimmie</em>",
"matchLevel": "partial"
},
"lastname": {
"value": "Barninger",
"matchLevel": "none"
},
"company": {
"value": "California <em>Paint</em> & Wlpaper Str",
"matchLevel": "partial"
}
}
}
],
"page": 0,
"nbHits": 1,
"nbPages": 1,
"hitsPerPage": 20,
"processingTimeMS": 1,
"query": "jimmie paint",
"params": "query=jimmie+paint&attributesToRetrieve=firstname,lastname&hitsPerPage=50"
}
更新日志
- 2019-02-28 v1.0
Algolia使用教程 , 超详细傻子看都会的更多相关文章
- Python入门教程 超详细1小时学会Python
Python入门教程 超详细1小时学会Python 作者: 字体:[增加 减小] 类型:转载 时间:2006-09-08我要评论 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Ja ...
- Python入门教程 超详细1小时学会Python
Python入门教程 超详细1小时学会Python 本文适合有经验的程序员尽快进入Python世界.特别地,如果你掌握Java和Javascript,不用1小时你就可以用Python快速流畅地写有用的 ...
- exe电子书制作教程(超详细)【申明:来源于网络】
exe电子书制作教程(超详细)[申明:来源于网络] 地址:http://wenku.baidu.com/view/0b046907eff9aef8941e0631.html
- MyCat安装与测试教程 超详细!
MyCat安装与测试教程 超详细! MyCat基础知识 一.什么是MYCAT? 1. 一个彻底开源的,面向企业应用开发的大数据库集群 2. 支持事务.ACID.可以替代MySQL的加强版数据库 3. ...
- nodejs安装 及环境变量配置教程 超详细版
------------恢复内容开始------------ ------------恢复内容开始------------ 上篇文件 写到 遇到了两个棘手问题 : @终端进程启动失败: shell ...
- Python入门教程 超详细1小时学会Python(转)
假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. 思路:用shell编程.(Linux通常是bash而Windows ...
- Matlab2016b破解安装教程——超详细
一.MATLAB是什么 MATLAB :是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simuli ...
- windows环境下elasticsearch安装教程(超详细)
一.安装jdk ElasticSearch是基于lucence开发的,也就是运行需要java jdk支持.所以要先安装JAVA环境. 由于ElasticSearch 5.x 往后依赖于JDK 1.8的 ...
- Docker实例教程[超详细](一)
Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互 ...
随机推荐
- 【Java】代理模式、反射机制-动态代理
关于代理模式和动态代理参考自:https://www.cnblogs.com/gonjan-blog/p/6685611.html 这里通过参考博客中的例子整理个人理解. 代理模式: 访问某个类的方法 ...
- HQL-Query接口
org.hibernate.Query接口 1.Query接口定义有执行查询的方法(完成HQL语句的解析和执行过程并返回查询结果,就像SQL语句没了JDBC接口就成了一个普通的字符串变量) 2.Que ...
- ABP框架系列之六:(Value-Objects-值对象)
Introduction "An object that represents a descriptive aspect of the domain with no conceptual i ...
- 12. The Biggest Safety Threat Facing Airlines 航空公司面临的最大安全威胁
12. The Biggest Safety Threat Facing Airlines 航空公司面临的最大安全威胁 (1) The biggest safety threat facing air ...
- Win7 VS2015 x64 MASM汇编语言编写DLL文件
有点坑记录一下. 首先创建工程时选控制台类型工程,Win32估计就应该选Win32的,反正我测试用的控制台. 然后选DLL类型,除了Empty其他全都去掉. 工程属性,masm勾上. Linker & ...
- python模块:xml
"""Core XML support for Python. This package contains four sub-packages: dom -- The W ...
- 01-jQuery的介绍
1.为什么要使用jQuery 在用js写代码时,会遇到一些问题: window.onload 事件有事件覆盖的问题,因此只能写一个事件. 代码容错性差. 浏览器兼容性问题. 书写很繁琐,代码量多. 代 ...
- 源码解读Linux的limits.conf文件
目录 目录 1 1. 前言 1 2. PAM 2 3. pam_limits 2 4. limits.conf的由来 3 5. 模块入口函数 4 6. 解析limits.conf 6 7. 生效lim ...
- Python数字与字符之间的转换
Python数字与字符之间的转换 命令 意义 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 co ...
- hdu 4911 Inversion and poj2299 [树状数组+离散化]
题目 题意: 给你一串数字,然后给你最多进行k次交换(只能交换相邻的)问交换后的最小逆序对个数是多少. 给你一个序列,每次只能交换相邻的位置,把他交换成一个递增序列所需要的最少步数 等于 整个序列的 ...