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 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互 ...
随机推荐
- 主键生成策略sequence
http://blog.csdn.net/shanhuhau/article/details/24978253 表示:如果不写序列名,会走默认的序列 若写,则seq_表名_属性名
- ios下面的按钮和inout框
在ios系统中,按钮和输入框,会默认给你加一个圆角和阴影,可以用css去掉这个自带的属性 input[type=button], input[type=submit], input[type=file ...
- JSP内置对象page/pageContext/Config/Exception
Config对象 config对象实是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一 ...
- vue全局后置钩子afterEach
beforeEach是路由跳转前执行的,afterEach是路由跳转后执行的. afterEach只有两个参数 afterEach((to,from)=>{}) 例子: router.afte ...
- Memcache cpu占用过高
分析应该是memcache的内存大小还是默认配置,已经满足不了当前的大数据量的需要了,大量的新缓存需要进入,同时大量的旧缓存又需要被淘汰出来,一进一出导致CPU占用过多.进入注册表,找到:HKEY_L ...
- JAVA 8 主要新特性 ----------------(四)Lambda函数式接口
一.什么是函数式接口 只包含一个抽象方法的接口,称为函数式接口. 你可以通过 Lambda 表达式来创建该接口的对象.(若 Lambda 表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法 ...
- Crontab定时执行Oracle存储过程
Crontab定时执行Oracle存储过程 需求描述 我们有一个Oracle的存储过程,里面是每个月需要执行一下,生成报表,然后发送给业务部门,这一个功能我们有实现在系统的前台界面(如图1-1),但是 ...
- BASH 基本语法
本节内容 1. 什么是shell script 2. 变量 3. 运算符 4. 流程控制 5. 函数 6. 计划任务 crontab 一 什么是shell script 将OS命令堆积到 ...
- 从navicat中导入sql文件过大:Got a packet bigger than 'max_allowed_packet' bytes
失败背景:刚才通过navicat向本地mysql数据库中导入sql文件.第一个sql文件(多个表)大小为967M,导入成功: 第二个sql(单个表)大小为50.1M,导入失败. 1.在navicat中 ...
- Spring集合注入
1.集合注入 上一篇博客讲了spring得属性注入,通过value属性来配置基本数据类型,通过<property>标签的 ref 属性来配置对象的引用.如果想注入多个数据,那我们就要用到集 ...