Oihana PHP Arango

facets

Table of Contents

Traits

HasFacetAggregateConditions
Shared builder for the "aggregate" facets ({@see HasFacetEdgeAggregate}, {@see HasFacetJoinAggregate}): both keep documents whose related documents (reached by an edge traversal or a key-join) satisfy an aggregate condition over a numeric field — `AGG(FOR … [FILTER join] RETURN related.field) <op> @threshold`.
HasFacetArrayComplex
Builds the AQL filter fragment for a {@see Facet::ARRAY_COMPLEX} facet: it keeps documents whose embedded array property holds at least one element matching the requested sub-field conditions. Composed into the model via {@see FacetTrait}.
HasFacetComplexConditions
Shared builder for the per-field conditions of the "complex" existential facets ({@see HasFacetEdgeComplex}, {@see HasFacetJoinComplex}): both match SEVERAL fields on the same related document, each field accepting a single value, a list (OR) and per-value negation (`-` => `!=`).
HasFacetEdge
Builds the AQL filter fragment for an {@see Facet::EDGE} facet: it keeps documents linked (or, when negated, not linked) to a target vertex through an inbound edge traversal. The match is driven by {@see HasFacetSimpleConditions} — a configurable operator (`Facet::OP`, default `eq`) over one or more vertex fields (`AQL::FIELDS`, default `_key`). Composed via {@see FacetTrait}.
HasFacetEdgeAggregate
Builds the AQL filter fragment for an {@see \oihana\arango\models\enums\Facet::EDGE_AGGREGATE} facet: the aggregate counterpart of {@see HasFacetEdge}. Instead of testing for the mere existence of a linked vertex, it aggregates a numeric field over ALL vertices reached through an inbound edge traversal and compares the result to a threshold — `AGG(FOR doc_<key> IN INBOUND doc <edge> RETURN doc_<key>.<field>) <op> @<key>_0`.
HasFacetEdgeComplex
Builds the AQL filter fragment for an {@see Facet::EDGE_COMPLEX} facet: like {@see HasFacetEdge} it keeps documents linked through an inbound edge traversal, but matches SEVERAL fields on the same target vertex (AND), each field accepting multiple values (OR) and per-value negation. Composed into the model via {@see FacetTrait}.
HasFacetField
Builds the AQL filter fragment for a {@see Facet::FIELD} facet: a comparison on a scalar document property `doc.<property>`, driven by an operator (`op`) that reuses the filter vocabulary ({@see FilterComparator}: `eq`, `ne`, `gt`, `ge`, `lt`, `le`, `like`, `nlike`, `match` default, `nmatch`).
HasFacetIn
Builds the AQL filter fragment for an {@see Facet::IN} facet: array membership between the requested values and a document array property `doc.<property>`, driven by an operator (`op`) that reuses the filter vocabulary ({@see FilterArrayComparator}: `any.in` default, `all.in`, `none.in`, …).
HasFacetJoin
Builds the AQL filter fragment for a {@see Facet::JOIN} facet: the key-join counterpart of {@see HasFacetEdge}. Instead of an edge traversal, it joins a collection by attribute equality and keeps documents that have at least one joined document whose field matches the requested value.
HasFacetJoinAggregate
Builds the AQL filter fragment for a {@see \oihana\arango\models\enums\Facet::JOIN_AGGREGATE} facet: the key-join counterpart of {@see HasFacetEdgeAggregate} and the aggregate counterpart of {@see HasFacetJoin}. Instead of testing for the mere existence of a joined document, it aggregates a numeric field over ALL joined documents and compares the result to a threshold — `AGG(FOR doc_<key> IN <collection> FILTER doc_<key>.<KEY> == doc.<PROPERTY> RETURN doc_<key>.<field>) <op> @<key>_0`.
HasFacetJoinComplex
Builds the AQL filter fragment for a {@see Facet::JOIN_COMPLEX} facet: the key-join counterpart of {@see HasFacetEdgeComplex}. Instead of traversing an edge, it joins a collection by attribute equality and keeps documents that have at least one joined document matching SEVERAL fields (AND), each field accepting multiple values (OR) and per-value negation.
HasFacetList
Builds the AQL filter fragment for a {@see Facet::LIST} facet. Kept as a thin alias over the {@see HasFacetIn} primitive (operator defaults to `any.in`), preserving the historical type name. Composed into the model via {@see FacetTrait}.
HasFacetListField
Builds the AQL filter fragment for an {@see Facet::LIST_FIELD} (and {@see Facet::LIST_FIELD_SORTED}) facet. Kept as a thin alias over the {@see HasFacetIn} primitive (operator defaults to `any.in`), preserving the historical type names. Composed into the model via {@see FacetTrait}.
HasFacetSimpleConditions
Shared builder for the "simple" existential facets ({@see HasFacetEdge}, {@see HasFacetJoin}): both keep documents that have at least one related document (reached by an edge traversal or a key-join) whose field matches the requested value.
On this page

Search results