Skip to content

Commit 4028a27

Browse files
committed
Merge ElasticSearch and Solr custom criterion, sort clause and aggregation
Criteria, sort clauses and aggregations don't depend on the search engine, only their visitors and other handlers do.
1 parent 7a05c67 commit 4028a27

33 files changed

+137
-216
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
services:
2+
app.search.solr.query.aggregation_visitor.priority_range_aggregation:
3+
class: Ibexa\Solr\Query\Common\AggregationVisitor\PriorityRangeAggregationVisitor
4+
factory: [ '@Ibexa\Solr\Query\Common\AggregationVisitor\Factory\ContentFieldAggregationVisitorFactory', 'createRangeAggregationVisitor' ]
5+
arguments:
6+
$aggregationClass: 'App\Query\Aggregation\Solr\PriorityRangeAggregation'
7+
$searchIndexFieldName: 'priority_i'
8+
tags:
9+
- { name: ibexa.search.solr.query.content.aggregation.visitor }
10+
- { name: ibexa.search.solr.query.location.aggregation.visitor }
11+
12+
app.search.elasticsearch.query.aggregation_visitor.priority_range_aggregation:
13+
class: Ibexa\Elasticsearch\Query\AggregationVisitor\PriorityRangeAggregationVisitor
14+
factory: [ '@Ibexa\Elasticsearch\Query\AggregationVisitor\Factory\SearchFieldAggregationVisitorFactory', 'createRangeAggregationVisitor' ]
15+
arguments:
16+
$aggregationClass: 'App\Query\Aggregation\Elasticsearch\PriorityRangeAggregation'
17+
$searchIndexFieldName: 'priority_i'
18+
tags:
19+
- { name: ibexa.search.elasticsearch.query.location.aggregation.visitor }
20+
- { name: ibexa.search.elasticsearch.query.content.aggregation.visitor }
21+
22+
app.search.solr.query.aggregation_result_extractor.priority_range_aggregation:
23+
class: Ibexa\Solr\ResultExtractor\AggregationResultExtractor\RangeAggregationResultExtractor
24+
arguments:
25+
$aggregationClass: 'App\Query\Aggregation\Solr\PriorityRangeAggregation'
26+
$keyMapper: 'Ibexa\Solr\ResultExtractor\AggregationResultExtractor\RangeAggregationKeyMapper\IntRangeAggregationKeyMapper'
27+
tags:
28+
- { name: ibexa.search.solr.query.location.aggregation.result.extractor }
29+
- { name: ibexa.search.solr.query.content.aggregation.result.extractor }
30+
31+
app.search.elasticsearch.query.aggregation_result_extractor.priority_range_aggregation:
32+
class: Ibexa\Elasticsearch\Query\ResultExtractor\AggregationResultExtractor\RangeAggregationResultExtractor
33+
arguments:
34+
$aggregationClass: 'App\Query\Aggregation\Elasticsearch\PriorityRangeAggregation'
35+
tags:
36+
- { name: ibexa.search.elasticsearch.query.location.aggregation.result.extractor }
37+
- { name: ibexa.search.elasticsearch.query.content.aggregation.result.extractor }
38+
39+
App\Query\Aggregation\Solr\PriorityRangeAggregationVisitor:
40+
tags:
41+
- { name: ibexa.search.solr.query.location.aggregation.visitor }
42+
- { name: ibexa.search.solr.query.content.aggregation.visitor }
43+
44+
App\Query\Aggregation\Solr\PriorityRangeAggregationResultExtractor:
45+
tags:
46+
- { name: ibexa.search.solr.query.location.aggregation.result.extractor }
47+
- { name: ibexa.search.solr.query.content.aggregation.result.extractor }
48+
49+
App\Query\Aggregation\Elasticsearch\PriorityRangeAggregationVisitor:
50+
tags:
51+
- { name: ibexa.search.elasticsearch.query.location.aggregation.visitor }
52+
- { name: ibexa.search.elasticsearch.query.content.aggregation.visitor }
53+
54+
App\Query\Aggregation\Elasticsearch\PriorityRangeAggregationResultExtractor:
55+
tags:
56+
- { name: ibexa.search.elasticsearch.query.location.aggregation.result.extractor }
57+
- { name: ibexa.search.elasticsearch.query.content.aggregation.result.extractor }

code_samples/search/elasticsearch/config/criterion_services.yaml renamed to code_samples/search/custom/config/criterion_services.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
services:
2+
App\Query\Criterion\Solr\CameraManufacturerVisitor:
3+
tags:
4+
- { name: ibexa.search.solr.query.content.criterion.visitor }
5+
- { name: ibexa.search.solr.query.location.criterion.visitor }
6+
27
App\Query\Criterion\Elasticsearch\CameraManufacturerVisitor:
38
tags:
49
- { name: ibexa.search.elasticsearch.query.content.criterion.visitor }

code_samples/search/elasticsearch/config/sort_clause_services.yaml renamed to code_samples/search/custom/config/sort_clause_services.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
services:
2+
App\Query\SortClause\Solr\ScoreVisitor:
3+
tags:
4+
- { name: ibexa.search.solr.query.content.sort_clause.visitor }
5+
- { name: ibexa.search.solr.query.location.sort_clause.visitor }
6+
27
App\Query\SortClause\Elasticsearch\ScoreVisitor:
38
tags:
49
- { name: ibexa.search.elasticsearch.query.content.sort_clause.visitor }
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44

55
namespace App\Query\Aggregation\Elasticsearch;
66

7+
use App\Query\Aggregation\PriorityRangeAggregation;
78
use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation;
89
use Ibexa\Contracts\Core\Repository\Values\Content\Search\AggregationResult;
910
use Ibexa\Contracts\Elasticsearch\Query\AggregationResultExtractor;
1011
use Ibexa\Contracts\Elasticsearch\Query\LanguageFilter;
1112

12-
final class PriorityAggregationResultExtractor implements AggregationResultExtractor
13+
final class PriorityRangeAggregationResultExtractor implements AggregationResultExtractor
1314
{
1415
public function supports(Aggregation $aggregation, LanguageFilter $languageFilter): bool
1516
{
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44

55
namespace App\Query\Aggregation\Elasticsearch;
66

7+
use App\Query\Aggregation\PriorityRangeAggregation;
78
use Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation;
89
use Ibexa\Contracts\Elasticsearch\Query\AggregationVisitor;
910
use Ibexa\Contracts\Elasticsearch\Query\LanguageFilter;
1011

11-
final class PriorityAggregationVisitor implements AggregationVisitor
12+
final class PriorityRangeAggregationVisitor implements AggregationVisitor
1213
{
1314
public function supports(Aggregation $aggregation, LanguageFilter $languageFilter): bool
1415
{

0 commit comments

Comments
 (0)