Skip to content

Commit 9ccd62b

Browse files
committed
[TASK] Add a runtime QueryResult Cache
1 parent 11e52ee commit 9ccd62b

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

Classes/Flowpack/ElasticSearch/ContentRepositoryAdaptor/Eel/ElasticSearchQuery.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ class ElasticSearchQuery implements QueryInterface
2525
*/
2626
protected $queryBuilder;
2727

28+
/**
29+
* @var array
30+
*/
31+
protected static $runtimeQueryResultCache;
32+
2833
public function __construct(ElasticSearchQueryBuilder $elasticSearchQueryBuilder)
2934
{
3035
$this->queryBuilder = $elasticSearchQueryBuilder;
@@ -35,7 +40,13 @@ public function __construct(ElasticSearchQueryBuilder $elasticSearchQueryBuilder
3540
*/
3641
public function execute($cacheResult = false)
3742
{
38-
return new ElasticSearchQueryResult($this);
43+
$queryHash = md5(json_encode($this->queryBuilder->getRequest()));
44+
if ($cacheResult === true && isset(self::$runtimeQueryResultCache[$queryHash])) {
45+
return self::$runtimeQueryResultCache[$queryHash];
46+
}
47+
$queryResult = new ElasticSearchQueryResult($this);
48+
self::$runtimeQueryResultCache[$queryHash] = $queryResult;
49+
return $queryResult;
3950
}
4051

4152
/**

Classes/Flowpack/ElasticSearch/ContentRepositoryAdaptor/Eel/ElasticSearchQueryBuilder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@ public function fetch()
671671
public function execute()
672672
{
673673
$elasticSearchQuery = new ElasticSearchQuery($this);
674-
$result = $elasticSearchQuery->execute();
674+
$result = $elasticSearchQuery->execute(true);
675675
return $result;
676676
}
677677

0 commit comments

Comments
 (0)