mirror of
https://github.com/predis/predis.git
synced 2026-08-30 20:21:31 +00:00
Added test case for enhanced exact matching (#1466)
* Added test case for enhanced exact matching * Added version restriction for test * Updated test case to use Tag Field instead * Codestyle fix * Added edge to stack matrix * Updated test case to switch DIALECT * Updated version restriction
This commit is contained in:
committed by
GitHub
parent
1726db0f47
commit
52bdcf0c1f
@@ -16,6 +16,7 @@ use Predis\Command\Argument\Search\CreateArguments;
|
||||
use Predis\Command\Argument\Search\SchemaFields\AbstractField;
|
||||
use Predis\Command\Argument\Search\SchemaFields\GeoShapeField;
|
||||
use Predis\Command\Argument\Search\SchemaFields\NumericField;
|
||||
use Predis\Command\Argument\Search\SchemaFields\TagField;
|
||||
use Predis\Command\Argument\Search\SchemaFields\TextField;
|
||||
use Predis\Command\Argument\Search\SearchArguments;
|
||||
use Predis\Command\Redis\PredisCommandTestCase;
|
||||
@@ -127,6 +128,65 @@ class FTSEARCH_Test extends PredisCommandTestCase
|
||||
$this->assertSame($expectedResponse, $actualResponse);
|
||||
}
|
||||
|
||||
/**
|
||||
* @group connected
|
||||
* @group relay-resp3
|
||||
* @return void
|
||||
* @requiresRediSearchVersion >= 2.09.00
|
||||
*/
|
||||
public function testSearchWithEnhancedMatchingCapabilities(): void
|
||||
{
|
||||
$redis = $this->getClient();
|
||||
|
||||
$hashResponse = $redis->hmset(
|
||||
'test:1', 'uuid', '3d3586fe-0416-4572-8ce', 'email', 'adriano@acme.com.ie', 'num', 5
|
||||
);
|
||||
$this->assertEquals('OK', $hashResponse);
|
||||
|
||||
$ftCreateArguments = new CreateArguments();
|
||||
$ftCreateArguments->prefix(['test:']);
|
||||
|
||||
$schema = [
|
||||
new TagField('uuid'),
|
||||
new TagField('email'),
|
||||
new NumericField('num'),
|
||||
];
|
||||
|
||||
$ftCreateResponse = $redis->ftcreate('idx_hash', $schema, $ftCreateArguments);
|
||||
$this->assertEquals('OK', $ftCreateResponse);
|
||||
|
||||
$ftSearchArguments = new SearchArguments();
|
||||
$ftSearchArguments->params(['uuid', '3d3586fe-0416-4572-8ce', 'email', 'adriano@acme.com.ie']);
|
||||
$ftSearchArguments->dialect(4);
|
||||
|
||||
$actualResponse = $redis->ftsearch(
|
||||
'idx_hash', '@uuid:{$uuid}', $ftSearchArguments
|
||||
);
|
||||
|
||||
$this->assertSame([
|
||||
1, 'test:1',
|
||||
['uuid', '3d3586fe-0416-4572-8ce', 'email', 'adriano@acme.com.ie', 'num', '5']], $actualResponse
|
||||
);
|
||||
|
||||
$actualResponse = $redis->ftsearch(
|
||||
'idx_hash', '@email:{$email}', $ftSearchArguments
|
||||
);
|
||||
|
||||
$this->assertSame([
|
||||
1, 'test:1',
|
||||
['uuid', '3d3586fe-0416-4572-8ce', 'email', 'adriano@acme.com.ie', 'num', '5']], $actualResponse
|
||||
);
|
||||
|
||||
$actualResponse = $redis->ftsearch(
|
||||
'idx_hash', '@num:[5]', $ftSearchArguments
|
||||
);
|
||||
|
||||
$this->assertSame([
|
||||
1, 'test:1',
|
||||
['uuid', '3d3586fe-0416-4572-8ce', 'email', 'adriano@acme.com.ie', 'num', '5']], $actualResponse
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @group connected
|
||||
* @group relay-resp3
|
||||
|
||||
Reference in New Issue
Block a user