Completion Suggester: Fix CompletionFieldMapper to correctly parse weight

Allows weight to be defined as a string representation of a positive integer

closes #8090
I think it might be cleaner to separate this to one elseif handling the string, and have an additional elsif after handling a direct value? This would eliminate the need for the if/else below for value/string, and would clearly separate what happens in each case (and then you don't need the string checking in the other conditionals as well).