code: public static Query withValue(String expression) {
          String[] parts = split(expression);
          if (parts != null) {
              String field = parts[0];
              String operator = parts[1];
              String value = parts[2];
  
              BinOp binOp = BinOp.getOp(operator);
              if (binOp != null) {
                  return withValue(field, binOp, value);
              }
              NaryOp naryOp = NaryOp.getOp(operator);
              if (naryOp != null) {
                  Literal[] values = Literal.values(value.substring(1, value.length() - 1).split("\\s*,\\s*"));
                  return withValues(field, naryOp, values);
              }
          }
          throw new IllegalArgumentException("'" + expression + "' is incorrect");
      }
docs: <pre>
  { field:<field>, op:<op>, rvalue:<value> }
  { field:<field>, op:<op>, values:[values] }
  </pre>