【发布时间】:2013-09-14 02:54:44
【问题描述】:
我刚刚开始使用 FOSElasticaBundle,到目前为止发现它非常好用。我不确定是我对 bundle/Elastica 的无知还是我对 ElasticSearch 的一般知识缺乏了解,但是否可以进行带有分页的 CustomScore 查询?
如果我尝试在 CustomQuery 对象上调用 setFrom/setSize,我会被告知这些方法不存在。如果我在那里创建一个 Query 对象和 setFrom 和 size 并将这个查询传递给 CustomScore 查询对象,那么分页参数将被忽略。我已经包含了我的代码的副本,因为它值得......
$queryString = new QueryString();
$queryString->setFields(array('_all'))
->setDefaultOperator('OR')
->setQuery($terms);
$query = new \Elastica\Query();
$query->setQuery($queryString);
$query->setSize($maxItems);
$query->setFrom(($page - 1) * $maxItems);
$custScoreQuery = new CustomScore();
$custScoreQuery->setQuery($query);
$custScoreQuery->setScript("_score * (doc['section.id'] == 7) ? 0.5 : 1");
$index = $this->get('fos_elastica.index.search_en_gb');
$results = $index->search($custScoreQuery);
任何帮助都乐意接受 :o)
【问题讨论】:
标签: php symfony pagination elasticsearch elastica