ElasticSearch的自定义评分功能适用于定制化场景,如综合排序。可通过function_score实现价格、距离等字段的评分排序,支持衰减函数、自定义脚本等多种方式,还可通过ESJavaApi实现,满足个性化需求。
比如用户希望通过距离和价格来进行综合排序,这在 mysql 中是不是比较难以实现,接下来我将由简到繁的...
{ "title": "Elasticsearch Function Score Query", "author": "John Doe", "content": "This article discusses the function_score query in Elasticsearch.", "likes": 250 } 现在我们有了一些文档,让我们对它们执行 function_score 查询。 3.2 使用 script_score 函数实现基于 'likes' 字段的对数加权排序 ...
{"_index":"best_games","_type":"_doc","_id":"2qccJ28BCSSrjaXdSOnC","_score":8.138414,"_source": {"user_score":9,"critic_score":92,"name":"Final Fantasy VII"} }, {"_index":"best_games","_type":"_doc","_id":"6KccJ28BCSSrjaXdSOnC","_score":8.138414,"_source": {"...
function_score官方文档 基本数据准备 我们创建一张新闻表,包含如下字段: 创建elasticsearch的Mapping: PUT /news { "mappings": { "properties": { "id": { "type": "long" }, "title": { "type": "text", "analyzer": "standard" }, "tags": { ...
截止时间那个排序可以通过function_score 中的衰减函数gass函数来进行排序,距离截止时间越远,得分越低。 这样的话就可以实现先按照未处理大的排序逻辑,之后按照截止时间进行排序 这里衰减函数默认的话是按照当前时间为原点,然后进行衰减的 function_score支持的衰减函数有三种,分别是 linear、exp 和 gauss ...
Function Score 通常用于实现复杂的搜索需求,例如根据文档的不同字段进行加权排序。 3.Field Value Factor 的定义和作用 Field Value Factor 是 Elasticsearch 中 Function Score 的一个组成部分,它用于对文档中的某个字段值进行加权。Field Value Factor 可以指定一个正数或者负数,表示该字段值的重要性。当 Function ...
1、weight:对每份文档适用一个简单的提升,且该提升不会被归约:当weight为2时,结果为2 * _score。 2、field_value_factor:使用文档中某个字段的值来改变_score,比如将受欢迎程度或者投票数量考虑在内。 3、random_score:使用一致性随机分值计算来对每个用户采用不同的结果排序方式,对相同用户仍然使用相同的排序方...
{"query": {"function_score": {"filter": {"term": {"city":"Barcelona"} },"functions": [ {"filter": {"term": {"features":"wifi"}},"weight":1}, {"filter": {"term": {"features":"garden"}},"weight":1}, {"filter": {"term": {"features":"pool"}},"weight":2} ...
2. Function Score Query Function Score Query 可以在查询结束后,对每一个匹配的文档进行一系列的重新算分,根据新生成的分数进行排序 提供了几种默认的计算分值的函数 Weight:为每一个文档设置一个简单而不被规范化的权重 Field Value Factor:使用该数值来修改_score,例如将 “热度...