Weighted field search

I have been reading documentation to find a way to do the following search but have not had any success yet. Trying to see if anyone here has suggestion for me to look in to..

I have objects with a certain number of key value pairs, my search needs to consider 3 fields but there is a weight assignment and specific matching algorithm to be use per field.
Say for example field1 should be matched with JaroWrinkler and weight on this field is 25%, Field2 DoubleMetaPhone and 35% weight and field 3 exact match and weight 40%. Now the query should use these weights and return the objects that have a combined matching score of 90% or higher.

And for JaroWrinkler field can we set a percentage match score, like for this field1 use JaroWrinkler and consider it a match if the JaroWrinkler similarity score is 80% or above.

Is this possible?