The built in search is very easy to use, but it only allows a single search term across all (searchable) columns.
A multi-term search can be built by constructing a Virtual Column of type List with elements of type Reference. The formula should return a list of keys from the table you want to search, and should update the list based on your search terms.
FILTER("Order", AND( OR( ISBLANK([_THISROW].[Status]) , IN([Status] ,[_THISROW].[Status]) ), OR( ISBLANK([_THISROW].[Status]) , CONTAINS([Name] ,[_THISROW].[Name]) ), OR( ISBLANK([_THISROW].[DateStart]) , [Date] >= [_THISROW].[DateStart] ), OR( ISBLANK([_THISROW].[DateEnd]) , [Date] <= [_THISROW].[DateEnd] ) ) )
The basic idea is to have a matching column in your Search table for every column you want to search in the other table (Orders in this example). Then your formula matches records if you enter a search term, and ignores that term if you leave it blank.
The result is a list of related records that updates instantly (without syncing) based on your search terms.
Note that each user should have their own row in the Search table to ensure users do not edit each others searches. This could also be done using the USERSETTINGS() but I find a regular table more flexible.