Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch elasticsearch中如何根据现场数据计算分数_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch elasticsearch中如何根据现场数据计算分数,elasticsearch,elasticsearch" /> elasticsearch elasticsearch中如何根据现场数据计算分数,elasticsearch,elasticsearch" />

elasticsearch elasticsearch中如何根据现场数据计算分数

elasticsearch elasticsearch中如何根据现场数据计算分数,elasticsearch,elasticsearch,我在文档中有以下字段 { name: "Pearl", age : 43, weight: 54, bodyWeight : 103, height : 1.8 } 现在,我想根据文档的体重与身高的比率来获得文档的分数。如何做到这一点?Elasticsearch通过提供自定义评分。在您的情况下,您可以使用以下方法为文档打分: 虽然这似乎是一个快速而简单的解决方案,但它有两个问题: *如果height的值为0:Infinity,评分将有一个有趣的行为? *脚本评分很慢 解决方案可以是在文档中为权

我在文档中有以下字段

{
name: "Pearl",
age : 43,
weight: 54,
bodyWeight : 103,
height : 1.8
}

现在,我想根据文档的体重与身高的比率来获得文档的分数。如何做到这一点?

Elasticsearch通过提供自定义评分。在您的情况下,您可以使用以下方法为文档打分:

虽然这似乎是一个快速而简单的解决方案,但它有两个问题: *如果
height
的值为0:Infinity,评分将有一个有趣的行为? *脚本评分很慢

解决方案可以是在文档中为权重编制索引

{
  name: "Pearl",
  age : 43,
  weight: 54,
  bodyWeight : 103,
  height : 1.8
  ratio: 57.2
}
然后


您可以通过使用脚本来实现这一点。请尝试以下脚本:

{
  "query": {
    "function_score": {
      "functions": [
        {
          "script_score": {
            "script": "_score * doc['bodyWeight'].value / doc['height'].value"
          }
        }
      ],
      "score_mode": "sum",
      "boost_mode": "replace"
    }
  }
}
像wise一样,您可以使用现场数据计算分数。有关评分的更多参考信息,请访问

您所说的“体重与身高之比”是什么意思?
"field_value_factor": {
  "field": "ratio"
}
{
  "query": {
    "function_score": {
      "functions": [
        {
          "script_score": {
            "script": "_score * doc['bodyWeight'].value / doc['height'].value"
          }
        }
      ],
      "score_mode": "sum",
      "boost_mode": "replace"
    }
  }
}