框架描述 


 

  发现网上Algolia这块的资料较少,就花了点时间从官网上整理了下,总结了几项常用的功能用法。 

  现在比较有名的Algolia提供了云搜索的服务。具体办法是我们将数据库的信息以JSON的格式上传到Algolia服务器,然后通过相应的API进行搜索,搜索可以是前端也可以是后端。这里描述的JavaScript的用法,不仅高效,而且对用户友好。Algolia的免费许可允许上传10,000JSON数据,每月允许100,000次操作(包括上传和搜索),还是相当不错的。

官网

准备工作

​ 前往官网注册完账号之后,我们就可以登录dashboard控制和管理我们的数据了。

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

我们需要的是Application IDSearch-Only API KeyAdmin 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

版权声明:本文为tmlh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tmlh/p/10452235.html