constant_score 是什么

What is constant_score in term and without

我在下面的两个 DSL 查询中得到了相同的输出。我不明白 constant_score 和

之间的区别

有什么区别?有什么优势吗?

下面是示例查询 DSL

{
"query" : {
    "constant_score" : {
        "filter" : {
            "term" : {
                "name.keyword": "Anthropology 230"
                
            }
        }
    }
}

第二个示例查询

{
  "query": {
    "term" : {
         "name.keyword": "Anthropology 230"
      }
  }
}

有什么区别?有什么优势吗?

常量分数可以让你否定内置 scoring mechanisms

现在你说,好吧,我明白了,但我为什么要关心,为什么这甚至是一个功能? 那么在您发布的用例中,您不在乎。它实际上只会产生开销。

那你什么时候关心?一种可能的情况是:

您正在使用 Disjunction max query 根据多个查询获取文档。现在通常你会被弹性给定的正常分数所束缚。但是,如果您希望其中的某个查询能够提供持续的“大”提升,该怎么办?常量分数给了你这样做的力量。

您可以找到这种情况的详细示例here