Elasticsearch自定义分数计算

时间:2016-11-30 04:56:46

标签: elasticsearch nosql

我需要为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 =(名字权重+姓氏权重+电子邮件权重)

任何帮助都将不胜感激。

0 个答案:

没有答案