Currently the Cumulocity search is implemented in three steps on UI side:
First, do a full-text search against the inventory.
Second, filter out certain elements based on a static list of fragmentnames & types.
Third, present the rest to the user.
This implementation has some limitations:
it will never be able to filter out custom-inventory objects created by customers (really relevant to all customers with customized solutions)
The search results of step 1 can get a lot (with the majority of them being filtered in step 2)
We received several support tickets regarding these limitations and unexpected sear results
When looking into it, we had the finding, that the BE is already able to combine the full-text search with additional query parameter. E.g. following call with execute a full-text search and only return the objects having the c8y_IsDevice fragment: /inventory/managedObjects?text=helloworld&withTotalPages=true&query=$filter=has('c8y_IsDevice')
Idea is now to:
Introduce an option in the Cumulocity search to "find only devices and devicegroups"
Replace the existing post-filtering with BE Calls combining full-text search with query-parameters
This way, the filter-part in the search is shifted from UI- to BE-side plus Users won't find their custom MOs not anymore in the search results.
This will resolve many customer concerns, thanks.
Would also recommend to remove the case-sensitiveness during search(clicking on 'Contains') and filtering of assets (or) atleast give user an option to opt in/out of case-sensitiveness.