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