I understand that Azure Search ranks and scores using the TF-IDF algorithm. Unfortunately, this is causing us issues with how our results are returned, and thus far, custom scoring profile tweaks are not helping us.
Here's an example of the problem:
For simplicity's sake, let's say that our search documents only have two fields - IndividualName, and EntityName. Due to how our source datapoints are configured many of our records/documents (not all) have duplicate data in those two fields. This is unavoidable for how our architecture is set up.
Now let's say we do a search on John Anderson. Here is the query string:
searchMode=Any&search=+(%22John Anderson%22~3)&searchFields=IndividualName,EntityName&queryType=Full&$top=50&$count=true
Say we have two documents in the results - one has "Richard John Anderson" in both the IndividualName and EntityName field, and the second result has John Anderson, but only in the IndividualName field. The EntityName field is blank. The problem is that the Richard John Anderson document gets scored/ranked higher than the John Anderson document. I can only surmise this to be due to the TF-IDF algorithm, and it ranking Richard John Anderson higher because it sees it in the document twice.
As you can imagine, this makes no sense to us. We have to be able to bring back the John Anderson document as the highest ranked since this is the name that was searched on, not Richard John Anderson.
We tried this as the query to see if it would help but it does not:
search=+((IndividualName:"John Anderson" || EntityName:"John Anderson")^10 || (IndividualName:"John Anderson"~3 || EntityName:"John Anderson"~3))&searchFields=IndividualName,EntityName&queryType=Full
This is why the subject line of the thread asks how we can circumvent, or give less weight to, TF-IDF for our documents. To us, exact matches are more important than term frequency. Leaving the EntityName field out of the query is not an option. We have experimented some with custom scoring and field boosting, but thus far, to no avail. Hoping the MS Azure Search team can help out here.