Restrict Global Search filter/dropdown where users can select which column/field to search on.
Hi everyone,
I have a question regarding the Global Search functionality in Creatio.
In Global Search, there is currently a dropdown/list that allows the user to select the column/field on which the search should be performed.
I would like to customize this behavior so that:
- The search is always performed on one specific column/field.
- The user should not be able to select a different column.
- Ideally, the column-selection dropdown/list should be hidden or removed from the Global Search UI.
- The existing Global Search functionality should continue to work using only the specified column.
Is there a supported configuration or Freedom UI customization that allows us to fix the Global Search to a particular column and remove the column-selection option?
If customization is required, could someone please suggest the recommended approach or the relevant schema/component that controls this dropdown?
Thanks in advance!
Like
Hi,
The column-selection dropdown is not part of Global Search — it belongs to the crt.SearchFilter ("Search") component on Freedom UI list pages. Real Global Search (the shell header box → GlobalSearchResultPage) has no column selector at all, only a section filter, and nothing configurable changes that. There is no supported switch (feature, system setting, or designer property) that pins the list search to one column or hides the selector — but it can be done declaratively in the page schema, no custom handler needed.
Recommended customization (Creatio 8.3.4+ / 10.x)
In the list page schema (Freedom UI Designer → source code, or the package schema), e.g. Contacts_ListPage / your Usr…_ListPage. Example pins search to Email:
viewConfigDiff — merge into the existing element:
{
"operation": "merge",
"name": "SearchFilter",
"values": {
"columnsGroupsConfig": { "columnsGroups": [] },
"_filterOptions": {
"expose": [{
"attribute": "SearchFilter_Items",
"converters": [{ "converter": "crt.SearchFilterAttributeConverter", "args": ["Items"] }]
}],
"from": ["SearchFilter_SearchValue", "SearchFilter_FixedColumnsGroups"]
}
}
}viewModelConfigDiff (or viewModelConfig.attributes if the schema uses that form — they are mutually exclusive):
{
"operation": "merge",
"path": ["attributes"],
"values": {
"SearchFilter_FixedColumnsGroups": {
"value": [{
"group": { "name": "Items", "caption": "Items" },
"columns": [{ "name": "Email", "caption": "Email" }]
}]
}
}
}Why it works: a truthy columnsGroupsConfig in the schema makes the preprocessor skip its own binding; with zero columns showColumnsGroups is false, so the icon is never rendered and the component/handler paths tolerate empty groups. The exposed SearchFilter_Items attribute now derives from the constant groups, so every search builds a filter over exactly Email, and the Items data source reloads (loadOnChange). Creatio itself ships a literal columnsGroupsConfig on ConfActivityLog_ListPage, so the pattern is supported metadata, not a hack.
Gotchas (each verified):
- Use exactly
{"columnsGroups": []}— an empty{}throws inshowColumnsGroups. group.namemust equal the converter arg / grid items attribute (Itemson standard section pages; on other pages check the page's existing_filterOptions, e.g.AddressList). A wrong group name silently disables filtering; a wrong column name yields zero rows.- Column must be a text/lookup/numeric column of the entity; it does not need to be displayed in the grid.
- Every attribute listed in
frommust exist, otherwiseSearchFilter_Itemsnever emits.
8.3.0 (and earlier 8.x): the preprocessor overwrites columnsGroupsConfig unconditionally unless the schema also defines valueChange. Add to the same merge:
"valueChange": {
"request": "crt.SearchFilterColumnsGroupsRequest",
"params": {
"value": "@event.value",
"searchFilterColumnsGroups": "@event.columnsGroups",
"searchFilterGroups": [{ "filterAttributeName": "SearchFilter_Items", "viewAttributeName": "Items" }],
"searchValueAttributeName": "SearchFilter_SearchValue",
"searchFilteredColumnAttributeName": "SearchFilter_SearchFilteredColumn",
"searchFilteredColumnsGroupsAttributeName": "SearchFilter_FilteredColumnsGroups"
}
}Lighter alternative if hiding isn't required: keep the default _filterOptions and set a literal columnsGroupsConfig with one group/one column (+ "primaryColumnName": "Email"). The icon stays, but the menu offers only that column (the "All" option needs >1 column).
If you really mean Elasticsearch Global Search
No per-query column choice exists anywhere in the stack (GlobalSearchService.Search(queryString, sectionEntityName, …)). The only column-level control is the GlobalSearchIndexedDataConfig system setting (exclude schemas/columns from indexing; needs re-indexing) plus relevance settings GlobalSearchDefaultEntityWeight, GlobalSearchDefaultPrimaryColumnWeight, UseInexactGlobalSearch, GlobalSearchShouldMatchPercent (Global search). Restricting it to one column would mean excluding every other column from the index — technically possible, not a UI option.