我需要为elasticsearch中的每个字段指定权重,例如
{
"firstname": 5,
"lastname": 5,
"email": 2
}
如果我按如下方式构建弹性查询,
{
"query": {
"bool": {
"should": [
{
"match": {
"firstname": "jan"
}
},
{
"match": {
"lastname": "skeet"
}
},
{
"match": {
"emailid": "skeet@cco.in"
}
}
]
}
}
}
与firstname,lastname和emailId匹配的文档的得分应为12。
仅匹配名字的文档应该得分为5,反之亦然,对于姓氏和emailid。
使用的公式是,
_score =(名字权重+姓氏权重+电子邮件权重)
任何帮助都将不胜感激。