Email Field Mapping - JDBC River

I'm using the JDBC river (sad it is deprecated but understand why).

I created all my items in all indexes with the river using a column strategy etc.

So I've never really indexed anything. I see the Get Mapping and Put Mapping API's. And I was able to get my mapping.

"Email":{"type":"string"} (that's it for the email address)....

How do I make it so that the following works:

search for garrett@abc123.com searches for exactly that.
search for anyone @abc123.com before garrett.

i'm reading about custom analyzers but i'm not sure how to implement them.

Anyone have a good guide. Our documents can have 100's of fields (bad data design). so they are very unwieldy.