Hi @Jltitus
Yes, would recommend to read up on delegation - it's basically the inability of Power Apps to delegate certain queries to the underlying datasource. For this reason, Power Apps has a delegation limit up to a max of 2000 items. What this means is that for non-delegable queries, power apps will accept up the first 2000 (unprocessed) records from the data source, which it will then process locally. This limit is set to protect performance. For delegable queries, there is no issue as the datasource does the processing and supplies Power Apps with the results.
So where at all possible it's better to work with delegable queries. It just so happens that what you have used is delegable (startswith on text fields) - though this is limited if you would rather have a contains search experience.
Delegation info here: Understand delegation in a canvas app - Power Apps | Microsoft Docs
One example of a potential work around (but not perfect) is to pre-filter the data using a delegable filter query and then search on that filtered dataset.
Syntax for a standard Search, which is not delegable is:
Search(Datasource, SearchString, Column1, Column2 etc)
But if you pre filter your data down to a quantity that will always be less than your delegation limit, you can then perform a search on the filtered data set. The result of that filter statement then becomes the Datasource in the above Expression. So then it becomes this:
Search(
Filter(YourData, Dropdown.Selected.Value = Department),
SearchBoxInput.Text, "Text Column1", "Text Column2", "Text Column2"
)
The important thing here is to always be sure that when you apply the filter the nr of items is always less than the delegation limit defaulted as 500, but can be increased to 2000. Also hide your search box if say '!IsBlank(Dropdown.Selected.Value)'
Hope this helps