One question: if you are managing an entity that has three distinct attributes, why did you choose to manage it via a single text area? Would three seperate form elements not be a better strategy?
Assuming you can't change the requirements, you have to first split the input into its three parts. This is fairly easy, looking at the JavaDocs for String will give you a way (it is slightly complicated because your requirements allow garbage input, but you can work round that).
Beyond that - what you are asking seems to be code written for you, which is not what we do here. What parts don't you understand? What have you written so far?
Allowing random free text searches against a database is difficult, because of the structure of data in relational databases. Have you considered an IR (Information Retrieval) system such as Lucene? It might suit your requirements better.