亚麻社招sde 面试

This desing question [LLD] was asked in one of my recent interview at Amazon.
I have given some set of API that are capable of searching a particular record based on given keyword, and we have 10 diff criteria eg. customer name, phone number, email, order id, refund id etc. while searching we are not specifying the input type, we are supposed to call aggregator service and pass the search keyword as input to it . We need to write some logic to decide which service is responsible to search and fetch the data based on the keyword passed.
The input of every search type can’t be distiguish by regex as the format is not unique for a specific criteria. eg. name, order id and refund id all can have alphanumaric characters and so on.
So we have to build a service that can call the respective service and fetch the data by hitting min no of Search Services(API’s).

Existing search Services(APIs) :
PhoneSearchService, NameSearchService, CustomerIdSearchService, RefundIdSearchService, EmailSearchService, XYZidService etc[but fixed no of services 7-10 at max].

Expected solution : OOPS, Class design, Business logic