排序:在其他文档之前获取作者的文档

时间:2016-09-30 15:43:06

标签: amazon-web-services amazon-cloudsearch

我有以下问题: 有没有办法在排序时使用特定的常量值作为决胜局?

这是我的例子:

假设索引结构:

{
     title: "Title",
     author: "Name of author"
}

假设我们有以下搜索查询:http://example.cloudsearch.amazonaws.com/2013-01-01/search?q=test&return=_all_fields%2C_score&sort=_score%20desc

问题在于,如果有10个文档具有相同的标题“test”,它们将具有相同的分数,现在我想对这些文档进行排序并获取当前作者创建的文档。我尝试过使用表达式,但我似乎无法让它工作,这就是我尝试过的:

http://example.cloudsearch.amazonaws.com/2013-01-01/search?q=test&return=_all_fields%2C_score&sort=_score%20desc,isauthor%20desc&expr.isauthor=(author%3D%3D%id)但我怀疑cloudsearch会接受这一点。有没有办法通过搜索字符串解决这个问题,还是需要索引类似数字作者标识符的东西?

1 个答案:

答案 0 :(得分:0)

如果有其他人感兴趣,这就是我最终要做的事情。

创建了一个新的索引字段:author_identifier我用它为每个用户索引一个唯一的整数标识符(这是另一个要获取的挑战,因为用户ID是GUID所以我不得不将它们与数字相关联。

然后我使用了排序表达式:http://example.cloudsearch.amazonaws.com/2013-01-01/search?q=test&return=_all_fields%2C_score&sort=_score%20desc,isauthor%20desc&expr.isauthor=(author_identifer%3D%3D%mappedid)

这不是一个理想的解决方案,但它比我想的更好。

相关问题