You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The fix shipped in #36791 / PR #36793 corrected the exact-name and mid-token matching gap in GlobalSearchAttributeStrategy, which is the shared strategy used by the Content Search portlet, Content Drive's keyword search, and the new (Angular) edit content Relationships field dialog.
However, the legacy (Dojo/JSP) edit content screen does not go through that code path at all. Its "Relate" dialog is dotcms.dijit.form.ContentSelector, which dispatches over DWR to ContentletAjax.searchContentletsByUser — a separate, drifted copy of the same query-building logic that still uses a catchall-only prefix gate.
The title_dotraw wildcard is present, but only as an optional boost clause. The mandatory +catchall:<term>* gate has already excluded the document, so it never rescues a mid-token or boundary-spanning term.
Impact: users on the legacy edit content screen cannot find related content by mid-token substring or by its exact full name — the same defect #36791 fixed everywhere else. Confirmed during QA of #36791.
Steps to Reproduce
Create a Content Type with a Relationships field pointing at another Content Type (e.g. Images).
Upload a File Asset named IMG_0004.jpeg, indexed.
Open a contentlet of the first Content Type in the legacy edit content screen and click "Relate".
No regression to the other ContentletAjax.searchContentletsByUser consumers (Content Search portlet's legacy screens, related-content filtering, date filtering). Existing ContentletAjaxTest stays green.
Query-construction change only — no mapping/analyzer change, no reindex.
Problem Statement
The fix shipped in #36791 / PR #36793 corrected the exact-name and mid-token matching gap in
GlobalSearchAttributeStrategy, which is the shared strategy used by the Content Search portlet, Content Drive's keyword search, and the new (Angular) edit content Relationships field dialog.However, the legacy (Dojo/JSP) edit content screen does not go through that code path at all. Its "Relate" dialog is
dotcms.dijit.form.ContentSelector, which dispatches over DWR toContentletAjax.searchContentletsByUser— a separate, drifted copy of the same query-building logic that still uses a catchall-only prefix gate.dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/ajax/ContentletAjax.java:943-974:The
title_dotrawwildcard is present, but only as an optional boost clause. The mandatory+catchall:<term>*gate has already excluded the document, so it never rescues a mid-token or boundary-spanning term.Impact: users on the legacy edit content screen cannot find related content by mid-token substring or by its exact full name — the same defect #36791 fixed everywhere else. Confirmed during QA of #36791.
Steps to Reproduce
Images).IMG_0004.jpeg, indexed.0004(mid-token) -> Expected:IMG_0004.jpegappears. Actual: 0 results.IMG_0004.jpeg(exact full name) -> Expected: it appears. Actual: 0 results.IMGorjpeg(genuine token prefixes) -> correctly found today.Acceptance Criteria
0004insideimg_0004) finds the containing content.IMG_0004.jpeg) finds the content.catchall:*term*from [BUG] Content Drive: keyword/title search returns inconsistent or incoherent results #36688 must NOT be reintroduced. Any broadened matching stays scoped totitle_dotraw.ContentletAjax.searchContentletsByUserconsumers (Content Search portlet's legacy screens, related-content filtering, date filtering). ExistingContentletAjaxTeststays green.dotCMS Version
Latest from
main.Severity
Medium - Some functionality impacted
Links
dotCMS/src/main/java/com/dotmarketing/portlets/contentlet/ajax/ContentletAjax.java:943-974dotCMS/src/main/webapp/html/js/dotcms/dijit/form/ContentSelector.js:899-923dotCMS/src/main/java/com/dotcms/rest/api/v1/content/search/strategies/GlobalSearchAttributeStrategy.java:37-48