...
Das befüllen von Dokumenten findet automatisiert statt. Um Dokumente effizient erstellen zu können, ist eine Konfigurationsdatei je Package notwendig. Sie ermöglicht die Linearisierung hierarchischer Strukturen und Konfiguration von Redis. Hier ein Beispiel für Artikelgruppen und Artikel.
Codeblock |
---|
|
{
"repositories": [
{
"repository": "shopGroup",
"documents": [
{
"type": "base",
"placeholder": [
{
"name": "label",
"pattern": "{{ output=$1 }} / {{ output=$3 }}",
"modifier": {
"WEIGHT": "0"
}
},
{
"name": "description",
"pattern": "{{ output=$2 }}<br />{{ output=$4 }}",
"modifier": {
"WEIGHT":
"0"
}
},
{
"name": "image",
"pattern": "{{ output=$5 }}",
"modifierisImage": {true
"WEIGHT": "0"
}
},
{
"name": "keywords",
"pattern": "{{ output=$3 }}",
"modifier": {
"WEIGHT": "1"
}
}
],
"trigger": [
["shopArticle", "shopGroup"],
["shopGroup"]
],
"node": {
"repository": "shopGroup",
"properties": [
{
"number": 1,
"name": "shopGroupName"
},
{
"number": 2,
"name": "shopGroupDescription"
}
],
"nodes": [
{
"repository": "shopArticle",
"properties": [
{
"number": 3,
"name": "shopArticleName"
},
{
"number": 4,
"name": "shopArticleDescription"
},
{
"number": 5,
"name": "shopArticleImage1"
}
]
}
]
}
}
]
}
]
} |
...
Codeblock |
---|
|
'document-storage' => [
'host' => getenv('DOCUMENT_STORAGE_HOST'),
'port' => getenv('DOCUMENT_STORAGE_PORT'),
'event-based' => false
] |
Zusätzlich wird folgender Cronjob benötigt.
Codeblock |
---|
|
-package=Doctrine/DocumentStore -host=domain.brandbox.de |
Rollen und Rechte
Rollen und Rechte bleiben bei der Indexierung unberücksichtigt. Bei der Suche wird jedoch anhand der Rollen gefiltert. Der Parameter $noAcl kann dafür verwendet werden.
Codeblock |
---|
|
use Brandbox\FrameworkDoctrineDocument\Doctrine\DocumentStore;
$query = 'Auto';
$collationId = 1;
$document = 'base'; // oder ''
$repository = 'shopGroup' // oder ''
$limit = 10;
$noAcl = false;$documents = $this
->staticController(DocumentStore\Manager::class)
->search($query, $collationId, $document, $repository, $limit, $noAcl)
; |
Testing
Es steht ein Test zur Verfügung, den ausschließlich Administratoren ausführen können. Öffnen Sie dazu folgenden Request in Ihrem System:
/admin?request=Doctrine/DocumentStore.test&query=Auto