docs: public Query createQuery( Constraint constraint ) {
          if (constraint instanceof And) {
              return createQuery((And) constraint);
          }
          if (constraint instanceof Or) {
              return createQuery((Or) constraint);
          }
          if (constraint instanceof Not) {
              return createQuery((Not) constraint);
          }
          if (constraint instanceof SetCriteria) {
              return createQuery((SetCriteria) constraint);
          }
          if (constraint instanceof PropertyExistence) {
              return createQuery((PropertyExistence) constraint);
          }
          if (constraint instanceof Between) {
              return createQuery((Between) constraint);
          }
          if (constraint instanceof Relike) {
              return createQuery((Relike) constraint);
          }
          if (constraint instanceof Comparison) {
              return createQuery((Comparison) constraint);
          }
          if (constraint instanceof FullTextSearch) {
              return createQuery((FullTextSearch) constraint);
          }
          // Should not get here ...
          throw new LuceneIndexException(
                  "Unexpected Constraint instance: class=" + (constraint != null ? constraint.getClass() : "null")
                  + " and instance=" + constraint);
      }