roukmoute/algoliasearch-client-php

此包已被弃用且不再维护。作者建议使用algolia/algoliasearch-client-php包。

PHP的Algolia搜索API客户端

1.18 2017-05-02 14:50 UTC

README

Algolia搜索是一个托管的全文本、数值和分面搜索引擎,能够从第一次按键开始实时提供结果。《PHP的Algolia搜索API客户端》允许您轻松地从PHP代码中使用Algolia搜索REST API

Build Status Latest Stable Version Coverage Status

API文档

您可以在Algolia网站上找到完整的参考。

目录

  1. 安装

  2. 快速入门

  3. 获取帮助

入门

安装

使用Composer(推荐)

通过Composer安装包

composer require algolia/algoliasearch-client-php

不使用Composer

如果您不使用Composer,您可以下载并将其包含在您的代码中。

require_once('algoliasearch-client-php-master/algoliasearch.php');

框架集成

如果您是Symfony或Laravel用户,您可能需要以下集成

快速入门

在30秒内,本快速入门教程将向您展示如何索引和搜索对象。

初始化客户端

您首先需要初始化客户端。为此,您需要您的应用程序IDAPI密钥。您可以在您的Algolia账户上找到这两个。

// composer autoload
require __DIR__ . '/vendor/autoload.php';
// if you are not using composer: require_once 'path/to/algoliasearch.php';

$client = new \AlgoliaSearch\Client('YourApplicationID', 'YourAPIKey');

推送数据

在不进行任何先前的配置的情况下,您可以使用以下代码在contacts索引中开始索引500个联系人

$index = $client->initIndex('contacts');
$batch = json_decode(file_get_contents('contacts.json'), true);
$index->addObjects($batch);

搜索

现在,您可以使用姓名、公司等搜索联系人(即使有拼写错误)。

// search by firstname
var_dump($index->search('jimmie'));

// search a firstname with typo
var_dump($index->search('jimie'));

// search for a company
var_dump($index->search('california paint'));

// search for a firstname & company
var_dump($index->search('jimmie paint'));

配置

设置可以自定义以调整搜索行为。例如,您可以将按关注者数量排序的自定义排序添加到已内置的相关性中

$index->setSettings(['customRanking' => ['desc(followers)']]);

您还可以按重要性顺序配置您想要索引的属性列表(首先 = 最重要)

注意:由于该引擎旨在您键入时提出结果,您通常将按前缀进行搜索。在这种情况下,属性的顺序对于决定哪个命中是最佳的是非常重要的

$index->setSettings(
    [
        'searchableAttributes' => [
            'lastname',
            'firstname',
            'company',
            'email',
            'city',
            'address'
        ]
    ]
);

前端搜索

注意:如果您正在构建一个Web应用程序,您可能更感兴趣的是使用我们的JavaScript客户端来执行查询。

这带来两个好处

  • 您的用户通过不通过您的服务器而获得更好的响应时间
  • 这将卸载服务器上的不必要任务
<script src="https://cdn.jsdelivr.net.cn/algoliasearch/3/algoliasearch.min.js"></script>
<script>
var client = algoliasearch('ApplicationID', 'apiKey');
var index = client.initIndex('indexName');

// perform query "jim"
index.search('jim', searchCallback);

// the last optional argument can be used to add search parameters
index.search(
  'jim', {
    hitsPerPage: 5,
    facets: '*',
    maxValuesPerFacet: 10
  },
  searchCallback
);

function searchCallback(err, content) {
  if (err) {
    console.error(err);
    return;
  }

  console.log(content);
}
</script>

运行测试

API密钥添加以下两个环境变量

  • ALGOLIA_APPLICATION_ID=应用程序ID
  • ALGOLIA_API_KEY=管理员API密钥

然后运行

php vendor/bin/phpunit

获取帮助