当前位置: 首页 > 面试题库 >

如何根据日期或分数提升Elasticsearch对象

姜育
2023-03-14
问题内容

例如,如果某个东西的“
favourites_count”值更高,我希望它变得更相关,或者如果它最近更新,那么它就更有意义。有没有办法做到这一点?这与标准的boost功能不同,因为这些字段不包含关键字,而是包含数字值。


问题答案:

您可以使用function_score来基于自定义公式增强文档。script_score有关更多详细信息,请参见此处(部分):https : //www.elastic.co/guide/zh-
cn/elasticsearch/reference/current/query-dsl-function-score-
query.html

您还可以使用衰减函数将最近创建的文档增强到较旧的结果上,请参见此处的示例:https
:
//www.elastic.co/blog/0-90-4-released/

然后参考此处以获取使用脚本计算分数的更复杂示例:http ://web.archive.org/web/20170107105531/https:
//jontai.me/blog/2013/01/advanced-scoring-in-elasticsearch
/



 类似资料:
  • 我试图通过根据场值提升_score来摆脱弹性搜索中的排序。这是我的场景: 我的文档中有一个字段:应用日期。这是自EPOC以来经过的时间。我希望具有更大应用日期(最近)的记录具有更高的分数。 如果两个文档的分数相同,我想在另一个字符串类型的字段上对它们进行排序。说“状态”是另一个可以有值的字段(可用、进行中、关闭)。所以,具有相同应用程序日期的文档应该根据状态_score。可用应该有更多的分数,进行

  • 问题内容: 我试图根据键中的日期对此HashMap进行排序 我的哈希图: 问题答案: 使用代替。正如已经实现的那样,它将在插入时自动排序。 或者,如果您有一个现有的并且想要基于它创建一个,则将其传递给构造函数: 也可以看看: Java教程-地图实现 Java教程-对象排序

  • 问题内容: 我正在使用Elasticsearch 6.6,尝试根据在日期范围内传递给查询(Bool)的多个值(email_address)提取多个结果/记录。例如:我想根据他们的email_address(annie@test.com,charles@test.com,heman@test.com)以及时期(即project_date(2019-01-01))提取有关少数雇员的信息。 我确实使用了

  • 我正在使用下面的脚本从Google工作表发送电子邮件提醒,但我想修改它,以便它在每行的单元格F中指定的日期发送电子邮件。 这就是我所拥有的,任何在其中添加日期的尝试都失败得很惨。 我在前面遇到了一个问题:谷歌应用程序脚本-根据手机中的日期发送电子邮件,但无法将其与我的脚本结合起来。

  • 我有搜索框的表格。我想在这个搜索框中输入今天的日期,并点击提交按钮后,我从数据库中获得10天的记录。我在table(table=issueDevices的名称)中有以下列。Device_ID、Employee_id、Employee_Name、Employee_Ext、Issue_Date 当我像下面这样编写查询时,pst=con.prepareStatement(“select*from iss

  • 问题内容: 如何对日期和/或日期时间对象列表进行排序?接受的答案在这里是不是为我工作: 问题答案: 你得到,因为它运行 在原地 ,这意味着它不返回任何东西,但修改列表本身。您只需要呼叫而无需再次分配。 有一个内置函数,该函数返回列表的排序版本-也会执行您想要的操作。