User tests: Successful: Unsuccessful:
Pull Request resolves #47447
This PR fixes an issue in the Finder indexer where duplicate term entries could cause the indexing process to fail.
The INSERT query in administrator/components/com_finder/src/Indexer/Indexer.php has been updated to prevent duplicate term errors. A LEFT JOIN is added to the #__finder_terms table along with an IS NULL condition, ensuring that only terms that don’t already exist are inserted.
Changed file:
administrator/components/com_finder/src/Indexer/Indexer.php — updated INSERT query to safely handle duplicatesBefore this fix:
Indexing stops with the error:
Duplicate entry X-* for key idx_term_language
After this fix:
Indexing completes successfully, and duplicate terms are handled without errors.
When content includes terms that normalize to the same value (such as accented vs. non-accented versions), the Finder indexer attempts to insert duplicate entries into the #__finder_terms table.
This causes a database error:
Duplicate entry X-* for key idx_term_language
As a result, the indexing process stops entirely, and the search index remains incomplete.
Indexing completes successfully even when duplicate normalized terms are present.
IS NULL condition).Result: More reliable and error-free indexing across supported databases (MySQL, PostgreSQL, SQL Server).
Please select:
Documentation link for guide.joomla.org:
No documentation changes needed for guide.joomla.org
Pull Request link for manual.joomla.org:
No documentation changes needed for manual.joomla.org
| Status | New | ⇒ | Pending |
| Category | ⇒ | Administration com_finder |
| Title |
|
||||||
I have tested this item 🔴 unsuccessfully on 9c93e82
I can not reproduce the issue
No error on indexing
| Status | Pending | ⇒ | Closed |
| Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2026-04-01 19:16:36 |
| Closed_By | ⇒ | SRV-KILLER09 | |
| Labels |
Added:
bug
PR-5.4-dev
|
||
Thanks for the PR, could you imagine to make a new one for 6.2 with your fix and additional refactoring for the DB query stuff like here (not tested):
It would be a good time to do it now that we're already working on it.