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