【发布时间】:2014-12-16 18:38:40
【问题描述】:
我正在使用 Elastica 在 PHP 上使用 Elastic Search。
我正在检索由项目组成的列表。有些项目是由编辑支付和/或选择的。目前,我只是通过自定义字段“分数”对它们进行排序,该字段根据它们的质量对这些项目进行排名。我想要一种在顶部默认显示 5 个随机列表(仅当它们没有搜索或过滤时)的方法,这些列表是由编辑付费和选择的。
所以我目前正在做的是使用custom filter score query 检索这5 个列表,将脚本设置为使用random()。在仅按分数排序的单独查询中,我排除了这 5 个列表。我的问题当然是分页,为此目的使用两个查询并从另一个查询中排除一个查询的结果似乎是一种黑客行为。
我有这样的事情:
{
"custom_filters_score" : {
"query" : {
"match_all" : {}
},
"filters" : [
...
],
"script" : "random()"
}
}
所以我的问题是,最简单的方法是什么?我看过功能分数,不知道是不是我要找的。p>
【问题讨论】:
标签: php sorting pagination elasticsearch elastica