[docs]classRedisTranslator(Visitor):"""Visitor for translating structured queries to Redis filter expressions."""allowed_comparators=(Comparator.EQ,Comparator.NE,Comparator.LT,Comparator.LTE,Comparator.GT,Comparator.GTE,Comparator.CONTAIN,Comparator.LIKE,)"""Subset of allowed logical comparators."""allowed_operators=(Operator.AND,Operator.OR)"""Subset of allowed logical operators."""
def_attribute_to_filter_field(self,attribute:str)->RedisFilterField:ifattributein[tf.namefortfinself._schema.text]:returnRedisText(attribute)elifattributein[tf.namefortfinself._schema.tagor[]]:returnRedisTag(attribute)elifattributein[tf.namefortfinself._schema.numericor[]]:returnRedisNum(attribute)else:raiseValueError(f"Invalid attribute {attribute} not in vector store schema. Schema is:"f"\n{self._schema.as_dict()}")