0
在此先感谢。我首先揭示了这种情况,最后是解决方案。Elasticsearch洗牌索引排序
我有2M的文件有以下映射的集合:
{
"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": {}
}
}
而且一击的样子这个(注意,_id值是URL的散列以防止重复的文档):
{
"_index": "images",
"_type": "image",
"_id": "2a750a4817bd1600",
"_score": null,
"_source": {
"url": "http://test.test/test.jpg",
"timestamp": "2014-02-13T17:01:40.442307",
"title": "Test image!"
},
"sort": [
null
]
}
这工作得很好。我遇到的唯一问题是文档按时间顺序排列(最早的文档出现在第一页上,最近一次在最后一页上索引),但我希望它们以随机顺序出现。例如,第10页应始终显示相同的N个文档,但它们不必按日期排序。
虽然我喜欢用它们的散列对所有文档进行排序,这是一种随机的和确定性的。我怎么能这样做?
我搜索了文档和排序API只是为了排序结果,而不是完整的索引。如果我没有找到解决方案,我会随机选择文档并将它们索引到分离的集合中。
谢谢。