diff --git a/dist/src/Resources/config/config.yaml b/dist/src/Resources/config/config.yaml index 650833c..34e22e4 100644 --- a/dist/src/Resources/config/config.yaml +++ b/dist/src/Resources/config/config.yaml @@ -1,5 +1,18 @@ parameters: monsieurbiz.search.product.is_in_stock_scoring_boost: 200 # Enable the boost for in stock products + monsieurbiz.search.product.search.fields_to_search: + - 'name^5' + - 'description' + - 'short_description' # We add our new value in search + monsieurbiz.search.product.search.nested_fields_to_search: + - 'main_taxon:name^2' # We add our new nested value in instant search + monsieurbiz.search.product.instant.fields_to_search: + - 'name^5' + - 'name.autocomplete' + - 'description' + - 'short_description' # We add our new value in search + monsieurbiz.search.product.instant.nested_fields_to_search: + - 'main_taxon:name^2' # We add our new nested value in instant search imports: - { resource: "services.yaml" } diff --git a/dist/src/Resources/config/services.yaml b/dist/src/Resources/config/services.yaml index 2df5852..0050f1a 100644 --- a/dist/src/Resources/config/services.yaml +++ b/dist/src/Resources/config/services.yaml @@ -24,32 +24,6 @@ services: 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: diff --git a/docs/add_custom_boosts.md b/docs/add_custom_boosts.md index eb7b034..ae37951 100644 --- a/docs/add_custom_boosts.md +++ b/docs/add_custom_boosts.md @@ -21,6 +21,6 @@ The boost is enabled when the value of `monsieurbiz.search.product.is_in_stock_s To create a new boost, you must - [Create a new class that implements `MonsieurBiz\SyliusSearchPlugin\Search\Request\FunctionScore\FunctionScoreInterface`](../dist/src/Search/Request/FunctionScore/Product/BoostExpensiveProductFunction.php) -- [Tag it with `monsieurbiz.search.request.product_function_score`](../dist/src/Resources/config/services.yaml#L54) +- [Tag it with `monsieurbiz.search.request.product_function_score`](../dist/src/Resources/config/services.yaml#L35) In our example we will boost, in the search, the product with a price greater than 50. diff --git a/docs/add_custom_entities.md b/docs/add_custom_entities.md index 0fe5118..7f51160 100644 --- a/docs/add_custom_entities.md +++ b/docs/add_custom_entities.md @@ -68,13 +68,13 @@ Also, the `public function getTarget(): string` method must return the value of If you want to display your entity in the instant search (`instant_search_enabled` is `true` in configuration). -[Declare your instant search request service](../dist/src/Resources/config/services.yaml#L60). +[Declare your instant search request service](../dist/src/Resources/config/services.yaml#38). [Don't forget to bind the parameter for the service](../dist/src/Resources/config/services.yaml#L6). ### Define your Search request -[Declare your search request service](../dist/src/Resources/config/services.yaml#L67). +[Declare your search request service](../dist/src/Resources/config/services.yaml#45). [Don't forget to bind the parameter for the service](../dist/src/Resources/config/services.yaml#L6). @@ -82,9 +82,9 @@ You can extends the `MonsieurBiz\SyliusSearchPlugin\Search\Request\Search` class ### Define your Search query filter -[Declare your search query filter for instant search](../dist/src/Resources/config/services.yaml#L77). +[Declare your search query filter for instant search](../dist/src/Resources/config/services.yaml#55). -[Declare your search query filter for search](../dist/src/Resources/config/services.yaml#L87). +[Declare your search query filter for search](../dist/src/Resources/config/services.yaml#65). You can extends the `MonsieurBiz\SyliusSearchPlugin\Search\Request\QueryFilter\SearchTermFilter` class to manage your custom behaviour like in [products](../src/Search/Request/QueryFilter/Product/SearchTermFilter.php). diff --git a/docs/add_custom_sorts.md b/docs/add_custom_sorts.md index 8816601..fb478c6 100644 --- a/docs/add_custom_sorts.md +++ b/docs/add_custom_sorts.md @@ -5,7 +5,7 @@ You can create your own sorter service by implementing the `SorterInterface` interface. For example, in your test application, [we have a short description sorter](../dist/src/Search/Request/Sorting/Product/ShortDescriptionSorter.php). -Add [the tag `monsieurbiz.search.request.product_sorter` to your service](../dist/src/Resources/config/services.yaml#L49). +Add [the tag `monsieurbiz.search.request.product_sorter` to your service](../dist/src/Resources/config/services.yaml#27). ## Replace existing sorter diff --git a/docs/add_custom_values.md b/docs/add_custom_values.md index 6e433f1..1a4c3ff 100644 --- a/docs/add_custom_values.md +++ b/docs/add_custom_values.md @@ -14,8 +14,7 @@ You will have the `item.short_description` variable available in your templates. ## Search on the custom value With only the decorator, you will not be able to search in the content of the new field. -You have to redeclare `monsieurbiz.search.request.query_filter.product_search.search_term_filter` -and `monsieurbiz.search.request.query_filter.product_instant_search.search_term_filter` services -to add the `short_description` fields. +You have to change parameters to define the fields to search for the search page and the instant search. -- [Add `short_description` in search term filter](../dist/src/Resources/config/services.yaml#L34) +- [Add `short_description` in `monsieurbiz.search.product.search.fields_to_search`](../dist/src/Resources/config/config.yaml#6) +- [Add `short_description` in `monsieurbiz.search.product.instant.fields_to_search`](../dist/src/Resources/config/config.yaml#13) diff --git a/src/Resources/config/services.yaml b/src/Resources/config/services.yaml index ec4b969..a264a82 100644 --- a/src/Resources/config/services.yaml +++ b/src/Resources/config/services.yaml @@ -12,6 +12,15 @@ parameters: - !php/const MonsieurBiz\SyliusSearchPlugin\Search\Request\RequestInterface::SEARCH_TYPE - !php/const MonsieurBiz\SyliusSearchPlugin\Search\Request\RequestInterface::TAXON_TYPE - !php/const MonsieurBiz\SyliusSearchPlugin\Search\Request\RequestInterface::INSTANT_TYPE + monsieurbiz.search.product.search.fields_to_search: + - 'name^5' + - 'description' + monsieurbiz.search.product.search.nested_fields_to_search: [] + monsieurbiz.search.product.instant.fields_to_search: + - 'name^5' + - 'name.autocomplete' + - 'description' + monsieurbiz.search.product.instant.nested_fields_to_search: [] services: @@ -120,19 +129,16 @@ services: monsieurbiz.search.request.query_filter.product_search.search_term_filter: class: MonsieurBiz\SyliusSearchPlugin\Search\Request\QueryFilter\Product\SearchTermFilter arguments: - $fieldsToSearch: - - 'name^5' - - 'description' + $fieldsToSearch: '%monsieurbiz.search.product.search.fields_to_search%' + $nestedFieldsToSearch: '%monsieurbiz.search.product.search.nested_fields_to_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' + $fieldsToSearch: '%monsieurbiz.search.product.instant.fields_to_search%' + $nestedFieldsToSearch: '%monsieurbiz.search.product.instant.nested_fields_to_search%' tags: - { name: monsieurbiz.search.request.product_instant_search_filter }