0

我的场景基于 .NET C# 中的 Web 门户,它使用 Amazon CloudSearch 来显示娱乐活动。这是我的搜索网址:

http://search-events-sz5bnsbiljweiirjdddbhagoj4.us-east-1.cloudsearch.amazonaws.com/2011-02-01/search?bq=startdate_unit:20140115..20140121&size=50&start=0&facet=categoryname,countyname,venuename,startdate_unit&return -fields=order%2Cscore%2Ccreateddate%2Cstartdate_unit%2Cstarttime%2Cshortdescription%2Csubtext%2Cvenuename_result%2Cimage&rank=-order,-score&results-type=xml&results-type=xml

如何在我的搜索中使用 rand() 函数并按 -order,-score 进行排名?

如您所见,我已经设置了“rank=-order,-score”,其中“order”是为按日期重复的事件或具有不同类别的重复事件给出的。“分数”由我的前端应用程序给出,它通过完整性为每个事件打分。

因为我可以有数千条 order=1000 和 score=100 的记录,所以当我有 1000 条记录的情况时,我想让所有记录都有机会在我的搜索中随机化 CloudSearch 的结果有 order=1000 和 score=100 或具有相同的值。

通过在我的等级上使用 rand() 可以解决这个问题,或者我可以使用什么其他 CloudSearch 功能来解决这个问题?

4

1 回答 1

1

谁可能会担心。我找到了如何通过配置由 rand() 函数组成的等级表达式来解决它:

&rank-表达式1=rand()

然后,我将此表达式用作三级标准:

rank=-order,-score,expression1

于 2014-01-17T11:36:47.607 回答