benjaminhirsch / php-azure-search
A simple PHP Class to communicate with the Microsoft Azure Search REST API
Installs: 13 750
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 0
Forks: 6
Open Issues: 7
Requires
- php: ^7.0
- ext-json: *
- zendframework/zend-http: ^2.8
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^6.0
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3.3
README
Microsoft Azure Search Service for php
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
Installation
The easiest way to get started is to install benjaminhirsch/php-azure-search
via composer.
$ composer require benjaminhirsch/php-azure-search
Initalize
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);
Create a Index
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);
Delete a 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');
Upload documents
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);
Live search (suggestions)
$azuresearch->suggestions('name of your index', 'your term', 'livesearch')
Search documents
$azuresearch->search('name of your index', 'your term');