2016-09-30 71 views
0

我有以下问题: 有什么办法可以在排序时使用特定的常量值作为决胜盘吗?排序:在其他文档之前获取作者的文档

这里是我的例子:

假设索引结构:

{ 
    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个文件具有相同标题“测试”他们都会有相同的分数,现在我想对这些文档进行排序,并将当前作者创建的文档置于顶层。我试过使用表达式,但我似乎无法得到它的工作,这是我的尝试:

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会接受。有没有什么办法通过搜索字符串来解决这个问题,还是我需要索引类似数字作者标识符的东西?

回答

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)

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