blob: 05066fb7e3df49ffede775ad7e0a9ea1e1ffdda7 (
plain) (
tree)
|
|
Filtering
=========
A filter is a combination of predicates that have to be satisfied. **hircine**
provides a filter interface that allows using almost any type of metadata as a
predicate and can therefore build complex and expressive queries.
.. image:: /_images/filtering.jpg
:align: center
:alt: Filtering comics
If given multiple types of predicates, all of them have to match. If one type
of predicate contains multiple selections, the selected mode determines how
they are combined:
+----------------------+--------------------------------------------------+
| Mode | Behaviour |
+======================+==================================================+
| ∀ ("for all") | matches if all given entities match |
+----------------------+--------------------------------------------------+
| ∃ ("there exists") | matches if any of the given entities match |
+----------------------+--------------------------------------------------+
| = ("exactly") | matches if entities are present exactly as given |
+----------------------+--------------------------------------------------+
For example, in the picture above, a comic only matches if *all* of the
following is true:
- It is tagged as ``female:idol`` or ``:tights``.
- It is tagged with the artist ``40hara``.
- It is rated as *Questionable*.
- It is uncensored.
- It is in any language except Japanese.
Matching empty sets
-------------------
Each type of predicate may also match on the ∅ empty set. If enabled, the
predicate only matches if the object does not contain any entities of that
type.
.. important::
If matching on the empty set, make sure there are no selections present in
the corresponding dropdown menu, as otherwise the filter will never match.
|