forked from monsieurbiz/SyliusSearchPlugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathservices.yaml
98 lines (87 loc) · 4.16 KB
/
services.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
services:
_defaults:
autowire: true
autoconfigure: true
public: false
bind:
$documentableRegistry: '@monsieurbiz.search.registry.documentable'
# Makes classes in src/ available to be used as services;
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../../*'
exclude: '../../{Entity,Migrations,Tests,Kernel.php}'
# Controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\Controller\:
resource: '../../Controller'
tags: ['controller.service_arguments']
# Add short_description in indexed data with the logic to get the value
App\Search\Automapper\DecorateProductMapperConfiguration:
decorates: MonsieurBiz\SyliusSearchPlugin\AutoMapper\ProductMapperConfiguration
arguments:
- '@.inner'
# Add short_description in searchable fields
monsieurbiz.search.request.query_filter.product_search.search_term_filter:
class: MonsieurBiz\SyliusSearchPlugin\Search\Request\QueryFilter\Product\SearchTermFilter
arguments:
$fieldsToSearch:
- 'name^5'
- 'description'
- 'short_description' # We add our new value in search
$nestedFieldsToSearch:
- 'main_taxon:name^2' # We add our new nested value in search
tags:
- { name: monsieurbiz.search.request.product_search_filter }
monsieurbiz.search.request.query_filter.product_instant_search.search_term_filter:
class: MonsieurBiz\SyliusSearchPlugin\Search\Request\QueryFilter\Product\SearchTermFilter
arguments:
$fieldsToSearch:
- 'name^5'
- 'description'
- 'name.autocomplete'
- 'short_description' # We add our new value in instant search
$nestedFieldsToSearch:
- 'main_taxon:name^2' # We add our new nested value in instant search
tags:
- { name: monsieurbiz.search.request.product_instant_search_filter }
# Define sorters
App\Search\Request\Sorting\Product\ShortDescriptionSorter:
tags:
- { name: monsieurbiz.search.request.product_sorter }
# Define custom boosts
App\Search\Request\FunctionScore\Product\BoostExpensiveProductFunction:
tags:
- { name: monsieurbiz.search.request.product_function_score }
# Define the taxon requests
app.search.request.taxon_instant_search:
class: MonsieurBiz\SyliusSearchPlugin\Search\Request\InstantSearch
arguments:
$documentType: app_taxon
$queryFilters: !tagged_iterator { tag: 'app.search.request.taxon_instant_search_filter' }
$functionScores: !tagged_iterator { tag: 'app.search.request.taxon_function_score' }
app.search.request.taxon_search:
class: MonsieurBiz\SyliusSearchPlugin\Search\Request\Search
arguments:
$documentType: app_taxon
$queryFilters: !tagged_iterator { tag: 'app.search.request.taxon_search_filter' }
$postFilters: !tagged_iterator { tag: 'app.search.request.taxon_post_filter' }
$sorters: !tagged_iterator { tag: 'app.search.request.taxon_sorter' }
$functionScores: !tagged_iterator { tag: 'app.search.request.taxon_function_score' }
# Define the taxon query filters
app.search.request.query_filter.taxon_instant_search.search_term_filter:
class: MonsieurBiz\SyliusSearchPlugin\Search\Request\QueryFilter\SearchTermFilter
arguments:
$fieldsToSearch:
- 'name^5'
- 'description'
- 'name.autocomplete'
tags:
- { name: app.search.request.taxon_instant_search_filter }
app.search.request.query_filter.taxon_search.search_term_filter:
class: MonsieurBiz\SyliusSearchPlugin\Search\Request\QueryFilter\SearchTermFilter
arguments:
$fieldsToSearch:
- 'name^5'
- 'description'
tags:
- { name: app.search.request.taxon_search_filter }