def _inequality_to_esfilter(self, schema): if is_op(self.lhs, Variable_) and is_literal(self.rhs): cols = schema.leaves(self.lhs.var) if not cols: lhs = self.lhs.var # HAPPENS DURING DEBUGGING, AND MAYBE IN REAL LIFE TOO elif len(cols) == 1: lhs = first(cols).es_column else: raise Log.error("operator {{op|quote}} does not work on objects", op=self.op) return {"range": {lhs: {self.op: self.rhs.value}}} else: script = Painless[self].to_es_script(schema) if script.miss is not FALSE: Log.error("inequality must be decisive") return {"script": es_script(script.expr)}
def to_es(self, schema): return {"script": es_script(self.script)}