code: public static Expression textCommonTerms(String operator, Val<Expression>[] args, EbeanExprInvoker invoker) {
          checkTextOptions(operator, args);
          Map<String, Val<Expression>> ops = ((TextOptionsExpression) args[1].expr()).options;
          TextCommonTerms common = new TextCommonTerms();
          for (String k : ops.keySet()) {
              switch (k) {
                  case "cutoff":
                      common.cutoffFrequency(ops.get(k).doubleV());
                      break;
                  case "lowFreqAnd":
                      common.lowFreqOperatorAnd(ops.get(k).bool());
                      break;
                  case "highFreqAnd":
                      common.highFreqOperatorAnd(ops.get(k).bool());
                      break;
                  case "minMatch":
                      common.minShouldMatch(ops.get(k).string());
                      break;
                  case "minMatchLowFreq":
                      common.minShouldMatchLowFreq(ops.get(k).string());
                      break;
                  case "minMatchHighFreq":
                      common.minShouldMatchHighFreq(ops.get(k).string());
                      break;
              }
          }
          return factory(invoker).textCommonTerms(args[0].string(), common);
      }
docs: <p>textCommonTerms.</p>
  
  @param operator a {@link java.lang.String} object.
  @param args an array of {@link ameba.db.dsl.QueryExprMeta.Val} objects.
  @param invoker a {@link ameba.db.ebean.filter.EbeanExprInvoker} object.
  @return a {@link io.ebean.Expression} object.