benjaminhirsch/php-azure-search
is a simple php toolbox to interact with the Microsoft Azure Search Service REST API.
Features:
- Create, update and delete indexes including suggesters and corsOptions
- Create, update and delete all type of fields including collections
- List indexes
- Get index statistics
- Add, update and delete documents
- Search documents
- Get live suggestions
- Count documents
Upcomming Features
- Add scoring profiles
The easiest way to get started is to install benjaminhirsch/php-azure-search
via composer.
$ composer require benjaminhirsch/php-azure-search
You get your credentials $azure_url
, $azure_admin_key
and $azure_version
in your Microsoft Azure portal under "Search Services".
$azuresearch = new BenjaminHirsch\Azure\Search\Service(azure_url, azure_admin_key, azure_version);
At first you have to create a index BenjaminHirsch\Azure\Search\Index
in which you have to store your documents later. Your index can be filled with as many fields as you want. Adding a suggester is optional but required if you want to use live search (suggestions).
$index = new BenjaminHirsch\Azure\Search\Index('name of your index');
$index->addField(new BenjaminHirsch\Azure\Search\Index\Field('field name 1', BenjaminHirsch\Azure\Search\Index\Field::TYPE_STRING, true))
->addField(new BenjaminHirsch\Azure\Search\Index\Field('field name 2', BenjaminHirsch\Azure\Search\Index\Field::TYPE_STRING))
->addSuggesters(new BenjaminHirsch\Azure\Search\Index\Suggest('livesearch', ['field name(s)']));
$azuresearch->createIndex($index);
Deletes the complete index from Azure. Deleting a index also deletes the documents stored in the index.
$azuresearch->deleteIndex('name of the index to delete');
After you have created a index, you are ready to fill the index with your data. Maximum array size per request (1000).
$data['value'][] = [
'@search.action' => BenjaminHirsch\Azure\Search\Index::ACTION_UPLOAD,
'field name 1' => <your value for field name 1>,
'field name 2' => <your value for field name 2>
];
$azuresearch->uploadToIndex('name of your index', $data);
$azuresearch->suggestions('name of your index', 'your term', 'livesearch')
$azuresearch->search('name of your index', 'your term');