Preparing queries
Some filter parameters accept a combination of modifiers to create complex queries. For example, to search for content that mentions both Titanic
and ship
, you can use the AND
modifier to combine these conditions:
from impresso import AND
impresso.search.find(term=AND("Titanic", "ship"))
We can refine this condition and search for all content items that mention Titanic
and ship
together OR mention Titanic
and iceberg
together AND do not mention Di Caprio
.
from impresso import AND, OR
impresso.search.find(
term=(
AND("Titanic", "ship") |
AND("Titanic", "iceberg")
) & ~OR("Di Caprio")
)
Modifiers
impresso.structures.OR
Bases: TermSet[T]
, Generic[T]
Used in filters to specify that any of the terms must be present in the result.
Example:
OR(["apple", "banana"])
OR("apple")
OR("apple", "banana")
# Negate:
~OR("apple", "banana")
impresso.structures.AND
Bases: TermSet[T]
, Generic[T]
Used in filters to specify that all the terms must be present in the result.
Example:
AND(["apple", "banana"])
AND("apple")
AND("apple", "banana")
# Negate:
~AND("apple", "banana")
impresso.structures.DateRange
Date range.
Example:
DateRange(datetime.date(1900, 1, 1), datetime.date(2000, 12, 31))
# Everything until 2000
DateRange(None, datetime.date(2000, 12, 31))
# Everything since 1900
DateRange(datetime.date(1900, 12, 31), None)
impresso.structures.NumericRange
Date range.
Example:
NumericRange(1, 10)