设置:
该索引是使用NEST API从C#类构建的。
这是在一种搜索引擎的上下文中。
我们有一个带有布尔过滤器并进行排序的查询。
我需要添加一个子句,以便首先返回最多三个条目,而无需考虑基于标志的存在以及其他三个定期更改的排序规则。< / p>
例如:
假设请求将返回65个文档,其中5个具有IsTopRankingWithViews
标志,则希望将5个具有该标志的文档中的3个推入结果列表的顶部。另外,应从带有标志的5个文档中随机选择返回的3个。 “随机选择”需要每x小时更改一次。
要选择随机数3,我可以添加另一个具有随机生成的整数的属性,并在此基础上对其进行排序,然后仅选择三个并将其推入结果顶部。
问题:如何添加仅对3个元素有效的排序子句。也就是说,该子句更改了3个文档后,不会影响文档的最终顺序。
这不能“全局”使用,因为仅将标志添加到索引中的三个文档将不起作用,因为我们并不总是选择文档。
有没有办法在Elasticsearch中做到这一点而不必执行多个请求?