1 Star 0 Fork 303

脏小强/elasticsearch-definitive-guide-cn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
40_Function_score_query.asciidoc 2.18 KB
一键复制 编辑 原始数据 按行查看 历史
Looly 提交于 2014-09-22 14:58 +08:00 . First commit, finished 1.1 and 1.2

function_score query

The {ref}query-dsl-function-score-query.html[function_score query] is the ultimate tool for taking control of the scoring process. It allows you to apply a function to each document which matches the main query in order to alter or completely replace the original query _score.

In fact, you can apply different functions to subsets of the main result set using filters, which gives you the best of both worlds: efficient scoring with cacheable filters.

It supports a number of predefined functions out of the box:

weight

Apply a simple boost to each document without the boost being normalized: a weight of 2 results in 2 * _score.

field_value_factor

Use the value of a field in the document to alter the _score, such as factoring in a popularity count or number of votes.

random_score

Apply consistently random sorting to your results to ensure that documents would otherwise have the same score are randomly shown to different users, while maintaining the same sort order for each user.

Decay functions — linear, exp, gauss

Incorporate sliding-scale values like publish_date, geo_location, or price into the _score to prefer recently published document, documents near a lat-lon point, or documents near a specified price-point.

script_score

Use a custom script to take complete control of the scoring logic. If your needs extend beyond those of the functions listed above, write a custom script to implement the logic that you need.

Without the function_score query we would not be able to combine the score from a full text query with a factor like recency. We would have to sort either by _score or by date — the effect of one would obliterate the effect of the other. This query allows you to blend the two together: to still sort by full text relevance, but giving extra weight to recently published documents, or popular documents, or products which are near the user’s price point.

As you can imagine, a query which supports all of the above can look fairly complex. We’ll start with a simple use case and work our way up the complexity ladder.

Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/icodes/elasticsearch-definitive-guide-cn.git
git@gitee.com:icodes/elasticsearch-definitive-guide-cn.git
icodes
elasticsearch-definitive-guide-cn
elasticsearch-definitive-guide-cn
master

搜索帮助