markwilson/awscloudsearchphp

This package is abandoned and no longer maintained. No replacement package was suggested.

Basic integration AWS CloudSearch API

dev-master 2013-12-20 00:06 UTC

This package is not auto-updated.

Last update: 2021-01-23 09:22:57 UTC


README

A library to interact with Amazon's AWS CloudSearch API.

Requirements

  • PHP 5+
  • cURL extension
  • AWS account
  • CloudSearch domain

Getting Started

For detailed instructions, check out Making Amazon CloudSearch API Requests.

curl -s https://getcomposer.org/installer | php
php composer.phar install

Require "markwilson/awscloudsearchphp" in your composer.json:-

{
    "require": {
        "markwilson/awscloudsearchphp": "dev-master"
    }
}

Pass your CloudSearch domain and server location to initialise the class:-

$loader = require 'vendor/autoload.php';
$cloudSearch = new \AwsCloudSearch\AwsCloudSearch(<domain>, <server location>);

// search domain's indexed documents
$cloudSearch->setReturnFields(<array of fields in storage>);
$response = $cloudSearch->search(<term>, <additional parameters>);
if ($response->wasSuccessful()) {
    print_r($response->getHitDocuments());
}
else {
    print_r($response->getErrors());
}

// add/update/delete array of documents
$documents = array();
$document = new \AwsCloudSearch\Document\AddDocument(<id>, <version>, <lang=en>, <fields array>);
$documents[] = $document;

$response = $cloudSearch->processDocuments($documents);
if ($response->wasSuccesful()) {
    echo $response;
}
else {
    print_r($response->getErrors());
}

Documents must be formatted to the Search Data Format (SDF).

To Do

  • Error handling
  • Initialise CloudSearch indexing
  • Complete Response classes
  • PHPDoc blocks
  • Send documents in blocks rather than attempting all at once
  • Handle HTML error response - e.g. 403 Forbidden
  • Improve search and rank configuration - move to an object rather array

Getting Help

If you need help or have questions, please contact Mark Wilson.

Credits

Inspiration from awsCloudSearchPHP by Greg Avola.