TYPO3-Documentation / Changelog-To-Doc

1 stars 0 forks source link

[BUGFIX] Reestablish manipulation of EXT:indexed_search query #1087

Open TYPO3IncTeam opened 1 month ago

TYPO3IncTeam commented 1 month ago

:information_source: View this commit on Github :busts_in_silhouette: Authored by Oliver Bartsch bo@cedev.de :heavy_check_mark: Merged by Oliver Bartsch bo@cedev.de

Commit message

[BUGFIX] Reestablish manipulation of EXT:indexed_search query

Due to huge performance implications on searching bigger sites, it's now possible again to manipulate the QueryBuilder instance, before the final indexed search query is executed. This achieved by introducing a new PSR-14 event.

Additionally a @todo is resolved by adjusting the repository to execute the final query centrally in doSearch().

Resolves: #105007 Related: #97530 Related: #102937 Releases: main, 13.4 Change-Id: Ibf428be5f3554010fb9a18e8d030f7428ce5d954 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/86593 Tested-by: Garvin Hicking gh@faktor-e.de Reviewed-by: Benni Mack benni@typo3.org Reviewed-by: Garvin Hicking gh@faktor-e.de Tested-by: Oliver Bartsch bo@cedev.de Reviewed-by: Oliver Bartsch bo@cedev.de Tested-by: Benni Mack benni@typo3.org Tested-by: core-ci typo3@b13.com

:heavy_plus_sign: Added files

13.4.x/Important-105007-ManipulationOfFinalSearchQueryInEXTindexed_search.rst ```rst .. include:: /Includes.rst.txt .. _important-105007-1728977233: ============================================================================= Important: #105007 - Manipulation of final search query in EXT:indexed_search ============================================================================= See :issue:`105007` Description =========== By removing the :typoscript:`searchSkipExtendToSubpagesChecking` option in :issue:`97530`, there might have been performance implications for installations with a lot of sites. This could be circumvented by adjusting the search query manually, using available hooks. Since those hooks have also been removed with :issue:`102937`, developers were no longer be able to handle the query behaviour. Therefore, the PSR-14 :php:`BeforeFinalSearchQueryIsExecutedEvent` has been introduced which allows developers to manipulate the :php:`QueryBuilder` instance again, just before the query gets executed. Additional context information, provided by the new event: * :php:`searchWords` - The corresponding search words list * :php:`freeIndexUid` - Pointer to which indexing configuration should be searched in. -1 means no filtering. 0 means only regular indexed content. .. important:: The provided query (the :php:`QueryBuilder` instance) is controlled by TYPO3 and is not considered public API. Therefore, developers using this event need to keep track of underlying changes by TYPO3. Such changes might be further performance improvements to the query or changes to the database schema in general. Example ======= .. code-block:: php queryBuilder->andWhere( $event->queryBuilder->expr()->eq('some_column', 'some_value') ); } } .. index:: PHP-API, ext:indexed_search ```
linawolf commented 3 days ago

Event should also be mentioned in the manual of indexed search