Elasticsearch function_score函数之field_value_factor(字段值影响_score)


 
 
使用Elasticsearch的同志来说,简单的搜索语句,已经达不到我们业务的需求,
想要的内容,已经不在限于全部的内容, Elasticsearch是一个实时的分布式搜索和分析引擎。
它可以帮助我们处理大规模数据,
用于全文搜索,结构化搜索以及分析,
很多时候我们是需要将这三者进行组合。
我们会去自定义它的打分机制:Function_score,

要使用function_score,用户必须定义​​一个查询和一个或多个函数,为查询返回的每个文档计算新的分数。

==============闲话不多说了,

今天就要说一下里面的field_value_factor,

field_value_factor功能允许您使用文档中的字段来影响score,

我写的一个例子供参考:

  {           "field_value_factor": {             "field": "view",             "modifier": "ln1p",             "missing": 1           }      }

具体的使用我们可以去查各种文档,我要说的是我们使用的时候要注意些什么

  1. 如果在多值字段上使用,则只有字段的第一个值用于计算。
  2. 使用的时候可能会遇到missing这个异常 Missing value for field [***] ,如果这个字段不exists,可能会报这个异常
查看官网看到:
missing

Value used if the document doesn’t have that field. The modifier and factor are still applied to it as though it were read from the document.

Keep in mind that taking the log() of 0, or the square root of a negative number
is an illegal operation, and an exception will be thrown. Be sure to limit the
values of the field with a range filter to avoid this, or use `log1p` and
`ln1p`.
所以我们在使用的时候要注意了,
如果你使用的字段是一个可丢失字段,
最好使用`log1p` and`ln1p,并且要添加 missing:*, *这个值就是在丢失字段事,默认被使用的值。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值