PHRAS-483_SHA-UID_master

add index (not analysed) & search on fields "sha256" and "uuid"
e.g. : uuid:"4d006e01-bc38-4aac-9a5b-2c90ffe3a8a2"
e.g. : sha256:a7f3ec01c4c5efcadc639d494d432006f13b28b9a576afaee4d3b7508c4be074
This commit is contained in:
Jean-Yves Gaulier
2018-04-26 17:35:01 +02:00
parent 8a8577c59e
commit 3f785e7ba3
5 changed files with 26 additions and 2 deletions

View File

@@ -8,6 +8,8 @@ class NativeKey implements Key
{
const TYPE_DATABASE = 'database';
const TYPE_COLLECTION = 'collection';
const TYPE_SHA256 = 'sha256';
const TYPE_UUID = 'uuid';
const TYPE_MEDIA_TYPE = 'media_type';
const TYPE_RECORD_IDENTIFIER = 'record_identifier';
@@ -24,6 +26,16 @@ class NativeKey implements Key
return new self(self::TYPE_COLLECTION, 'collection_name');
}
public static function sha256()
{
return new self(self::TYPE_SHA256, 'sha256');
}
public static function uuid()
{
return new self(self::TYPE_UUID, 'uuid');
}
public static function mediaType()
{
return new self(self::TYPE_MEDIA_TYPE, 'type');

View File

@@ -61,8 +61,8 @@ class RecordIndex implements MappingProvider
// Collection name (still indexed for facets)
$mapping->addStringField('collection_name')->disableAnalysis();
$mapping->addStringField('uuid')->disableIndexing();
$mapping->addStringField('sha256')->disableIndexing();
$mapping->addStringField('uuid')->disableAnalysis();
$mapping->addStringField('sha256')->disableAnalysis();
$mapping->addStringField('original_name')->disableIndexing();
$mapping->addStringField('mime')->disableAnalysis();
$mapping->addStringField('type')->disableAnalysis();

View File

@@ -34,6 +34,8 @@ class NodeTypes
const TOKEN_RAW_STRING = 'raw_quoted';
const TOKEN_DATABASE = 'database';
const TOKEN_COLLECTION = 'collection';
const TOKEN_SHA256 = 'sha256';
const TOKEN_UUID = 'uuid';
const TOKEN_MEDIA_TYPE = 'type';
const TOKEN_RECORD_ID = 'id';
const TOKEN_CREATED_ON = 'created_on';

View File

@@ -346,6 +346,10 @@ class QueryVisitor implements Visit
return AST\KeyValue\NativeKey::database();
case NodeTypes::TOKEN_COLLECTION:
return AST\KeyValue\NativeKey::collection();
case NodeTypes::TOKEN_SHA256:
return AST\KeyValue\NativeKey::sha256();
case NodeTypes::TOKEN_UUID:
return AST\KeyValue\NativeKey::uuid();
case NodeTypes::TOKEN_MEDIA_TYPE:
return AST\KeyValue\NativeKey::mediaType();
case NodeTypes::TOKEN_RECORD_ID: