>>> filter = RedisText("job") != "engineer"
        """
        self._set_value(other, self.SUPPORTED_VAL_TYPES, RedisFilterOperator.NE)  # type: ignore
        return RedisFilterExpression(str(self))
    def __mod__(self, other: str) -> "RedisFilterExpression":
        """Create a RedisText "LIKE" filter expression.
        Args:
            other (str): The text value to filter on.
        Example:
            >>> from langchain_community.vectorstores.redis import RedisText
            >>> filter = RedisText("job") % "engine*"         # suffix wild card match
            >>> filter = RedisText("job") % "%%engine%%"      # fuzzy match w/ LD
            >>> filter = RedisText("job") % "engineer|doctor" # contains either term
            >>> filter = RedisText("job") % "engineer doctor" # contains both terms
        """
        self._set_value(other, self.SUPPORTED_VAL_TYPES, RedisFilterOperator.LIKE)  # type: ignore
        return RedisFilterExpression(str(self))
    def __str__(self) -> str:
        """Return the query syntax for a RedisText filter expression."""
        if not self._value:
            return "*"
        return self.OPERATOR_MAP[self._operator] % (
            self._field,
            self._value,
        )
[docs]class RedisFilterExpression:
    """A logical expression of RedisFilterFields.
    RedisFilterExpressions can be combined using the & and | operators to create
    complex logical expressions that evaluate to the Redis Query language.
    This presents an interface by which users can create complex queries
    without having to know the Redis Query language.
    Filter expressions are not initialized directly. Instead they are built