如果缺少字段,ElasticSearch功能评分查询不会默认为1

时间:2017-05-12 15:44:27

标签: elasticsearch

我正在尝试在ElasticSearch中创建一个功能分数(在其他过滤器之后)为最近购买产品的客户提供更高的分数。为此我有一个字段" lastPurchaseOn"。

查询还需要返回未购买任何产品的客户,因此我无法过滤出现在的lastPurchaseOn字段。

"functions": [
    {
        "exp": {
            "lastPurchaseOn": {
                "scale": "3d"
            }
        }
    },
    ...
]
问题是,当字段" lastPurchaseOn"缺少,该函数返回得分1,当我真的希望它返回0时。

有没有办法让函数为缺失值返回0?

由于

1 个答案:

答案 0 :(得分:0)

official documentation非常明确地说明了这一点:

  

如果文档中缺少数字字段,则该函数将返回1.

主要原因是exponential function没有办法用于返回0.您可以尝试使用linear函数而不是exp