* [MNT-25681] Search refactoring and unification * [MNT-25681] CR fixes * [MNT-25681] ADF version bump * [MNT-25681] Two way binding on search input * MNT-25681] search e2es fixes * [MNT-25681] search e2es stabilization pt 2 * [MNT-25149] Add unit tests for multivalued select parameter default value (#5262) * [MNT-25149] Add unit tests for multivalued select parameter default value * address comment on pr * [MNT-25681] Fix content node selector panel issues * [PRODSEC-13253] Upgraded angular version to fix vulnerability and to have the same versions like ADF * [MNT-25681] Unit test fix * [MNT-25681] Search input fix --------- Co-authored-by: Adam Świderski <adam.tomasz.swiderski@gmail.com> Co-authored-by: Akash Rathod <41251473+akashrathod28@users.noreply.github.com> Co-authored-by: Aleksander Sklorz <Aleksander.Sklorz@hyland.com>
13 KiB
Title
| Title |
|---|
| Search Results |
Search Results
When you type queries into the Search Input component, the application will return the Search Results in a page. From the search results page you can open files and perform various actions depending on the permissions available for the selected item.
This page consists of the following ADF components:
- Search Filter
- Search Chip List
- Search Sorting Picker
- Document List with custom layout template
- Info Drawer with Metadata and Version Management
- Toolbar with basic actions like
Preview,Download,Favorite,Copy, etc.
And also the Info Drawer, Toolbar and Node Selector dialogs for copy and move operations.
Alfresco Full Text Search
The following table describes current support of the Alfresco Full Text Search (FTS) syntax in the Content Application when using Search Input component.
| Feature | Full | Partial | N/A | Details |
|---|---|---|---|---|
| Search for a single term | 1.6 | Docs | ||
| Search for a phrase | 1.7 | Docs | ||
| Search for an exact term | 1.7 | Docs | ||
| Search for term expansion | X | Docs | ||
| Search for conjunctions | 1.7 | Docs | ||
| Search for disjunctions | 1.7 | Docs | ||
| Search for negation | X | Docs | ||
| Search for optional, mandatory, and excluded elements of a query | X | Docs | ||
| Search in fields | 1.7 | Docs | ||
| Search for wildcards | 1.7 | Docs | ||
| Search for ranges | X | Docs | ||
| Search for fuzzy matching | X | Docs | ||
| Search for proximity | X | Docs | ||
| Search for boosts | X | Docs | ||
| Search for grouping | X | Docs | ||
| Search for spans and positions | X | Docs | ||
| Escaping characters | X | Docs | ||
| Mixed FTS ID behavior | X | Docs | ||
| Search for operator precedence | X | Docs | ||
| Search query templates | X | Docs | ||
| Search query literals | X | Docs | ||
| Search using date math | X | Docs |
Partial support means the feature supports basic scenarios and there are edge cases that are not yet fully tested and might not work.
Search Modes
The Search Input component supports two search modes. You can switch between them using the mode toggle displayed next to the search box:
- Standard search (default) — finds text exactly as you enter it. The application builds the query for you, matching your input against the fields configured for the active search form (see Search Forms). This is the recommended mode for everyday searching.
- Formula search — lets you build a query manually using
Alfresco Full Text Search (FTS) syntax.
In this mode the application passes your input to the search service unchanged, so special characters such as
:,",*and theAND/ORoperators are interpreted as search syntax.
The selected mode is preserved in the search URL, so it is restored when you reload the page or share a search link.
In previous versions the application implicitly switched to raw query handling whenever it detected a
:or"character in the input, and used a leading=symbol for exact-term matching. That implicit behavior has been removed in favor of the explicit Formula search mode. To run field-scoped queries, phrase queries, exact-term matching, or any other FTS syntax, switch to Formula search.
Search Queries and Precise Searching
When using Standard search, the application constructs the query from your input. Given a single term, the default query matches that term against every field configured for the active search form:
((cm:name:"[term]" OR cm:title:"[term]" OR cm:description:"[term]" OR TEXT:"[term]" OR TAG:"[term]"))
When wildcard searching is enabled, a * suffix is appended to every term so that partial matches are also returned:
((cm:name:"[term]*" OR cm:title:"[term]*" OR cm:description:"[term]*" OR TEXT:"[term]*" OR TAG:"[term]*"))
Note that compared to Share the following defaults are removed from ACA:
OR ia:whatEvent:"[term]*" OR ia:descriptionEvent:"[term]*" OR lnk:title:"[term]*" OR lnk:description:"[term]*"
Key facts
-
If you have entered more than one word into the search input box, then the search query is constructed automatically using an
ANDoperation. -
If you have entered more than one word separated by
AND, then the search query is constructed using anANDconjunction. SinceANDis the default operator (see fact 1), the explicitANDkeywords are removed when the search input value is processed. -
If you have entered more than one word separated by
OR, then the search query is constructed using anORdisjunction. UnlikeAND, theORoperators are preserved when processing the search input value becauseORis not the default operator. -
For phrase queries, exact-term matching, field-scoped queries, or any other advanced FTS syntax, switch to Formula search so that the input is sent to the search service unchanged.
Examples
| Search Type | Search mode | Entered search input value | Expected result |
|---|---|---|---|
| Single Term | Standard | banana | Nodes that contain the term banana in any configured field |
| Conjunction | Standard | big yellow banana | Nodes that contain all of the terms big, yellow, and banana |
| Conjunction | Standard | big AND yellow AND banana | Nodes that contain all of the terms big, yellow, and banana |
| Disjunction | Standard | orange OR banana OR apple | Nodes that contain at least one of the terms orange, banana or apple |
| Phrase | Formula | cm:name:"big yellow banana" | Nodes whose cm:name contains the exact phrase big yellow banana |
| Field-scoped / advanced | Formula | TEXT:"orange" AND TAG:"fruit" | The query is passed to the search service exactly as entered |
Wildcard searching
Wildcard searching is controlled by the search-wildcards-enabled property in app.config.json:
{
"search-wildcards-enabled": true
}
| Value | Behavior |
|---|---|
true |
A * suffix is appended to every term in Standard search, so partial matches are returned (e.g. ban matches banana). |
false |
Terms are matched as entered, without an implicit trailing wildcard. |
This setting only affects how Standard search builds the query; in Formula search you control wildcards yourself by typing them into the query.
Important note: Consider using Search Logical Filter when you need to combine multiple search types. Mixing search types directly in the input may result in wrong query format and incorrect results.
