[docs]classOpenSearchTranslator(Visitor):"""Translate `OpenSearch` internal query domain-specific language elements to valid filters."""allowed_comparators=[Comparator.EQ,Comparator.LT,Comparator.LTE,Comparator.GT,Comparator.GTE,Comparator.CONTAIN,Comparator.LIKE,]"""Subset of allowed logical comparators."""allowed_operators=[Operator.AND,Operator.OR,Operator.NOT]"""Subset of allowed logical operators."""def_format_func(self,func:Union[Operator,Comparator])->str:self._validate_func(func)comp_operator_map={Comparator.EQ:"term",Comparator.LT:"lt",Comparator.LTE:"lte",Comparator.GT:"gt",Comparator.GTE:"gte",Comparator.CONTAIN:"wildcard",Comparator.LIKE:"fuzzy",Operator.AND:"must",Operator.OR:"should",Operator.NOT:"must_not",}returncomp_operator_map[func]