elasticsearch,shuffle,Sorting,Lucene,elasticsearch,Shuffle" /> elasticsearch,shuffle,Sorting,Lucene,elasticsearch,Shuffle" />

Sorting Elasticsearch无序索引排序

Sorting Elasticsearch无序索引排序,sorting,lucene,elasticsearch,shuffle,Sorting,Lucene,elasticsearch,Shuffle,提前谢谢。我先暴露情况,最后给出解决方案 我收集了200万份文档,其中包含以下映射: { "image": { "properties": { "timestamp": { "type": "date", "format": "dateOptionalTime" }, "title": { "type": "string" },

提前谢谢。我先暴露情况,最后给出解决方案

我收集了200万份文档,其中包含以下映射:

{
   "image": {
      "properties": {
         "timestamp": {
            "type": "date",
            "format": "dateOptionalTime"
         },
         "title": {
            "type": "string"
         },
         "url": {
            "type": "string"
         }
      }
   }
}
我有一个网页,通过以下搜索对所有文档进行分页:

{  
  "from":STARTING_POSITION_NUMBER,
  "size":15,
  "sort" : [
        { "_id" : {"order" : "desc"}}
    ],
  "query" : {
    "match_all": {}
   }
 }
{  
    "from":STARTING_POSITION_NUMBER,
    "size":15,
    "query" : {
        "function_score": {
           "random_score": {
            "seed" : 1
           }
        }    
    }
}
点击如下所示(注意_id值是url的散列,以防止重复文档):

这很有效。我唯一的问题是文档按时间顺序排列(最早的文档出现在第一页,最近索引的文档出现在最后一页),但我希望它们以随机顺序出现。例如,第10页应始终显示相同的N个文档,但它们不必按日期排序

我想到了一些类似于按照散列对所有文档进行排序的事情,这是一种随机的、确定性的。我怎么做呢

我在文档上搜索过,排序api只用于对结果进行排序,而不是对完整索引进行排序。如果我没有找到解决方案,我会随机挑选文档,并在单独的集合中为它们编制索引


谢谢。

我通过以下搜索解决了这个问题:

{  
  "from":STARTING_POSITION_NUMBER,
  "size":15,
  "sort" : [
        { "_id" : {"order" : "desc"}}
    ],
  "query" : {
    "match_all": {}
   }
 }
{  
    "from":STARTING_POSITION_NUMBER,
    "size":15,
    "query" : {
        "function_score": {
           "random_score": {
            "seed" : 1
           }
        }    
    }
}
感谢Elasticsearch邮件列表中的David指出了随机评分的功能评分