Tie_breaker - way to exclude same field analyzed using different analyzers in multi_field

I have a mapping where name is analyzed using different analyzers standard, whitespace, custom (for camelcase) which makes it 3 different sub fields for name.

When I use tie_breaker option in multimatch query to have sum of fields score rather than best_field score the score from name field gets added multiple times since there are cases when all analyzers output will be same.

This causes the document score to go high due to one field match while other document with multiple field match in other fields which are not analyzed in multiple ways remains low.

{
"title": {
"type": "text",
"fields": {
"raw": { "type": "keyword", "index": "not_analyzed" },
"stemmed": { "type": "text", "analyzer": "Custom_analyzer" }
}
},
"description": {
"type": "text",
"analyzer": "custom_analyzer"
}
}

In above mapping "title", "title.raw" and "title.stemmed" scores should not be added but max should be taken and

Document score = Max(title, title.raw, title.stemmed) + description

AND NOT

Document score = title + title.raw + title.stemmed + description

Does ES provide a way to add the score of sub_fields only once for the major field match?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.