public function testAggregationWrappingOnUnrestrictedField() { $field = new Field('foo', Mapping::TYPE_STRING, ['private' => false]); $agg = ['terms' => 'bar']; $wrapped = AggregationHelper::wrapPrivateFieldAggregation($field, $agg); $this->assertEquals($agg, $wrapped); }
private function getAggregationQueryParams(SearchEngineOptions $options) { $aggs = []; // We always want a collection facet right now $collection_facet_agg = array(); $collection_facet_agg['terms']['field'] = 'collection_name'; $aggs['Collection_Name'] = $collection_facet_agg; // We always want a base facet right now $base_facet_agg = array(); $base_facet_agg['terms']['field'] = 'databox_name'; $aggs['Base_Name'] = $base_facet_agg; // We always want a type facet right now $base_facet_agg = array(); $base_facet_agg['terms']['field'] = 'type'; $aggs['Type_Name'] = $base_facet_agg; $structure = $this->context_factory->getLimitedStructure($options); foreach ($structure->getFacetFields() as $name => $field) { // 2015-05-26 (mdarse) Removed databox filtering. // It was already done by the ACL filter in the query scope, so no // document that shouldn't be displayed can go this far. $agg = []; $agg['terms']['field'] = $field->getIndexField(true); $agg['terms']['size'] = $field->getFacetValuesLimit(); $aggs[$name] = AggregationHelper::wrapPrivateFieldAggregation($field, $agg); } return $aggs; }