oramacloud/client

v1.0.2 2024-07-19 18:09 UTC

This package is auto-updated.

Last update: 2024-09-07 12:17:21 UTC


README

Package Version PHP Version Tests

With the OramaCloud PHP Client SDK, you can perform search queries on your Orama index, or programmatically update your index data and trigger new deployments. Integrate Orama Cloud in your PHP application using the REST APIs to insert and upsert your index data and trigger deployments when it's convinient for your use case.

Install

composer require oramacloud/client

Compatibility

PHP: 7.3 or later

Integrating with Orama Cloud

use OramaCloud\Client;
use OramaCloud\Client\Query;

$client = new Client([
    'api_key' => '<Your Orama Cloud API Key>',
    'endpoint' => '<Your Orama Cloud Endpoint>'
]);

$query = (new Query('red shoes'))
    ->where('price', 'gt', 99.99);

$results = $client->search($query);

Advanced search

use OramaCloud\Client;
use OramaCloud\Client\Query;
use OramaCloud\Client\QueryParams/WhereOperator;
use OramaCloud\Client\QueryParams/SortByOrder;

$client = new Client([
    'api_key' => '<Your Orama Cloud API Key>',
    'endpoint' => '<Your Orama Cloud Endpoint>'
]);

$query = new Query();
$query->term('red shoes')
      ->mode('hybrid')
      ->where('price', WhereOperator::LTE, 9.99)
      ->where('gender', WhereOperator::EQ, 'unisex')
      ->sortBy('price' SortByOrder::DESC)
      ->limit(5)
      ->offset(1);

$results = $client->search($query);

Managing your index

use OramaCloud\Manager\IndexManager;

$index = new IndexManager('<Your Index-ID>', '<Your Private API Key>');

// Empty data
$index->empty();

// Insert records
$index->insert([
    ['id' => '1', 'name' => 'John Doe', 'age' => 20 ],
    ['id' => '2', 'name' => 'Mario Rossi', 'age' => 25 ],
    ['id' => '3', 'name' => 'John Smith', 'age' => 35 ],
]);

// Update records
$index->update([[ 'id' => '1', 'name' => 'Jane Doe', 'age' => 30 ]]);

// Delete records
$index->delete(['1', '2']);

// Trigger deployment
$index->deploy();

Run Tests

composer test

License

Apache-2.0 license. Please see License File for more information.