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 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互 ...
随机推荐
- exception is java.lang.IllegalArgumentException: No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make su re that file is correct.
spring cloud 项目使用maven 打包报错“No auto configuration classes found in META-INF/spring.factories” 在pom.x ...
- 目录命令(cd)
cd 命令: // 描述: (Change Directory) 更改当前目录或显示当前目录的名称. 如果仅使用驱动器号(例如,cd C :),则cd将显示指定驱动器中当前目录的名称. 如果不带参数使 ...
- mysql---select的五种子句学习(where、group by、having、order by、limit)
mysql---select的五种子句学习(where.group by.having.order by.limit) 分类: Mysql学习2012-09-27 16:14 1533人阅读 评论 ...
- javascript常见内存泄露
一.全局变量引起的内存泄漏 function func(){ lmw = 123456 //lmw是全局变量,不会被释放 } 二.闭包引起的内存泄漏 function func(){ var lmw ...
- MySQL中Decimal类型和Float Double等区别
MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形 ...
- qhfl-5 redis 简单操作
Redis Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis有以下特点: -- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可 ...
- stm32手册上的英文
crystal-less 无晶振 USB FS(Full-speed)此外还有High-speed接口(简称HS),Low-speed接口(简称LS) frequency频率 CRC(Cyclic ...
- html 基本用法
html表单表格基本用法,直接贴代码. <html> <head> <title>html基础</title> </head> </b ...
- day_1 Python介绍及计算机组成和系统
python学习路线 基础语法 - 文件操作 - 函数 - 模块 - 面向对象(类) - 网络编程 - 数据库 - 前段 - 项目 学习方法 wwwh: what-why-where-how #wha ...
- Spring 使用javaconfig配置aop
1.在xml中需要配置自动代理 /** * */ package com.junge.demo.spring.dao; import org.springframework.context.annot ...