Ci si basa sui valori restituiti dai campi e attraverso una struttura condizionale si costruisce una query dinamica con l'utilizzo di operatori AND e OR... dipende da che tipo e dal livello di ricerca che vuoi mettere a disposizione.
Non è difficile ma ricerche complesse non si fanno in poche ore, a meno che non hai un modello su cui basarti.