We have a requirement in which we take input from user and match it against our fields in elastic search. At the moment it is a free text search and user can type anything. What we have done is basically while indexing created a single field with combination from several other fields so we can just match from the single field and give results to the user.
The problem with this approach is, it is not feasible to give a score to the user as it will depend on how much user has typed and it is also not consistent.
What we want is if somehow in the query I could match the user input against each field and give the score as per the weightage. For example: Field 1 can have more weightage than field 2 and so on. So the score should be calculated as per this logic.
Does any one has any experience in this kind of requirement? I understand there are few things around custom score, constant score I could utilize but not sure how to combine these things to come up with what we want. Any direction or help will be really appreciated.