I have installed the plugin MacFJA/php-redisearch using the following command
composer require macfja/redisearch
Issue:
Complete code:
<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; use IlluminateSupportFacadesLog; use IlluminateSupportFacadesRedis; use DateTime; use FKRediSearchRediSearchSetup; use MacFJARediSearchRedisClientClientFacade; class CommandName extends Command { protected $signature = 'command:commandName'; protected $description = 'Command description'; public function __construct() { parent::__construct(); } public function handle() { $clientFacade = new ClientFacade(); } }
Can someone share why the issue is thrown?
Advertisement
Answer
As @NicoHaase said (and here also), MacFJARediSearchRedisClientClientFacade
is not available in versions 1.x, and as for now, the version installed by Composer is the version 1.4.0
.
The next version (that will be 2.0.0
) is not ready yet, but is not far away. It’s this version that have the class MacFJARediSearchRedisClientClientFacade
.
But the version 1.4.0
can be used in Laravel as well.
The documentation is here: https://github.com/MacFJA/php-redisearch/tree/1.4.0#readme
But to summarize it should be something like:
<?php namespace AppConsoleCommands; use IlluminateConsoleCommand; use IlluminateSupportFacadesLog; use IlluminateSupportFacadesRedis; use DateTime; use PredisClient; use MacFJARediSearchSearch; class CommandName extends Command { protected $signature = 'command:commandName'; protected $description = 'Command description'; public function __construct() { parent::__construct(); } public function handle() { $client = new Client(['scheme' => 'tcp', 'host' => 'localhost', 'port' => '6379', 'db' => 0]); $search = new Search($client); $results = $search ->withIndex('person') ->withQuery('Doe') ->withHighlight(['lastname']) ->withScores() ->search(); // Do something with $result } }
You can also look at this lib: macfja/redisearch-integration. Its goal is to reduce a part of the boilerplate and add PHP object mapping (like Doctrine ORM)