您好我有问题..
我有我的弹性储存库
namespace XX\xxx;
use FOS\ElasticaBundle\Repository;
class TestRepository extends Repository
{
public function getExamples($argOne, $argTwo) {
$query = new BoolQuery();
$matchOne = new Match();
$matchOne->setField('column_one', $argOne);
$query->addMust($matchOne);
$matchTwo = new Match();
$matchOne->setField('column_two', $argTwo);
$query->addMust($matchTwo);
return $this->find($query);
}
}
并映射
...
types:
example:
mappings:
column_one:
type: integer
column_two:
type: string
column_three:
type: date
我的问题是......
我需要按第三列获取查询组。我不知道该怎么做。
我会对这些信息感激不尽。
答案 0 :(得分:1)
您需要使用Aggregations
。
示例:
use Elastica\Aggregation\Terms;
use Elastica\Query;
// set up the aggregation
$termsAgg = new Terms("dates");
$termsAgg->setField("column_three");
$termsAgg->setSize(10);
// add the aggregation to a Query object
$query = new Query();
$query->addAggregation($termsAgg);
$index = $elasticaClient->getIndex('someindex');
$buckets = $index->search($query)->getAggregation("dates");
foreach($buckets as $bucket){
$statsAggResult = $bucket["column_three"];
// do something with the result of the stats agg
}
在此处阅读更多内容:http://elastica.io/example/aggregations/terms.html
答案 1 :(得分:0)
是的,但这是问题。
如何阅读此数据? 我搜索这个,我发现了方法搜索()。它使用方法getAggregations()返回SetResults。
但..这是存储库..有方法find()返回数组...
在这种情况下如何获得聚合?