Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 这可以在弹性搜索查询中完成吗?_Sorting_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Ranking_Elastica - Fatal编程技术网 elasticsearch,ranking,elastica,Sorting,elasticsearch,Ranking,Elastica" /> elasticsearch,ranking,elastica,Sorting,elasticsearch,Ranking,Elastica" />

Sorting 这可以在弹性搜索查询中完成吗?

Sorting 这可以在弹性搜索查询中完成吗?,sorting,elasticsearch,ranking,elastica,Sorting,elasticsearch,Ranking,Elastica,我目前正在通过在将事件插入弹性搜索之前预先计算分数来解决这个问题。然而,因为它是基于一个日期,我必须每天重新计算分数。是否可以在查询期间进行此计算 数据: 排名: 使用插入日期创建了4个“bucket” 5天以下的事件 5天以上和10天以下的事件 10天以上和15天以下的事件 超过15天的事件 每个bucket中的事件需要按照得分字段DESC进行排序 预先计算的排名是通过将1000、2000或3000加在分数上,这取决于事件落在哪个桶中 进行查询时,结果按排名排序 如果不使用预先计算的排名,

我目前正在通过在将事件插入弹性搜索之前预先计算分数来解决这个问题。然而,因为它是基于一个日期,我必须每天重新计算分数。是否可以在查询期间进行此计算

数据:

排名:

使用插入日期创建了4个“bucket”

  • 5天以下的事件
  • 5天以上和10天以下的事件
  • 10天以上和15天以下的事件
  • 超过15天的事件
每个bucket中的事件需要按照
得分
字段
DESC
进行排序

预先计算的排名是通过将1000、2000或3000加在分数上,这取决于事件落在哪个桶中

进行查询时,结果按排名排序


如果不使用预先计算的
排名
,我将如何执行此操作

我认为您可以做到这一点。当前预定义评分逻辑的真正痛苦在于,您无法在事件数据在其当前存储桶中过期后向后移动。因为您的存储桶遵循5天的日差对称性。请使用线性日的函数评分,标度为-5天。

查询数据时用当前日期替换原点。根据共享链接设置boost_模式和score_模式。
希望这能起作用。

对不起,用线性衰减代替高斯衰减。
{
    "title" : "event 1",
    "rank" : 1034, // pre-calculated score
    "score": 34,
    "date" : "2015-10-10 00:00:00",
    "meta" : [
        {
            "date": "2015-10-10 00:00:00",
            "type": "insert"
        },
        {
            "date": "2015-12-10 00:00:00",
            "type": "outsert"
        },
        {
            "date": "2015-05-10 00:00:00",
            "type": "other"
        }       
    ]
}
{
 "gauss": {
        "date_field": {
              "origin": "2013-09-17", 
              "scale": "5d",
              "offset": "0d", 
              "decay" : 0.5 
            }
        }
    }