Three ways -
For both ways I use a secondary data connection to the database tables - the connection retrieves (at least) the 'ID' or primary key value which I can later use to retrieve the record(s) which match and any fields which I am wanting to search on.
Method 1 : Use the 'datasource' filters option to set up a bunch of filters on the secondary source's values that get returned based on your 'search' field.
Method 2: Use the 'Edit SQL' button on the data connection properties to add a Where clause and have a 'placeholder' for the values - then use jScript code to query the Secondary connection manually but adjust the SQL property to replace the placeholders beforehand with the value being searched for.
Method 3: (similar to Method 1) Let the secondary datasource return ALL records - and then use conditional formatting on the display repeating section/table to hide those which don't match the search field.
Now - finally - once you have a display of the records which match you may want to retrieve the full record data - put a button in the section/table which copies the ID value from the secondary datasource to the main datasource Query ID field.