Examples of ParametricQueryNode


Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

  @Override
  protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {

    if (node instanceof ParametricRangeQueryNode) {
      ParametricRangeQueryNode parametricRangeNode = (ParametricRangeQueryNode) node;
      ParametricQueryNode upper = parametricRangeNode.getUpperBound();
      ParametricQueryNode lower = parametricRangeNode.getLowerBound();
      Locale locale = Locale.getDefault();
      Collator collator = null;
      DateTools.Resolution dateRes = null;
      boolean inclusive = false;

      if (getQueryConfigHandler().hasAttribute(RangeCollatorAttribute.class)) {

        collator = getQueryConfigHandler().getAttribute(
            RangeCollatorAttribute.class).getRangeCollator();

      }

      if (getQueryConfigHandler().hasAttribute(LocaleAttribute.class)) {

        locale = getQueryConfigHandler().getAttribute(LocaleAttribute.class)
            .getLocale();

      }

      FieldConfig fieldConfig = getQueryConfigHandler().getFieldConfig(
          parametricRangeNode.getField());

      if (fieldConfig != null) {

        if (fieldConfig.hasAttribute(DateResolutionAttribute.class)) {

          dateRes = fieldConfig.getAttribute(DateResolutionAttribute.class)
              .getDateResolution();

        }

      }

      if (upper.getOperator() == CompareOperator.LE) {
        inclusive = true;

      } else if (lower.getOperator() == CompareOperator.GE) {
        inclusive = true;
      }

      String part1 = lower.getTextAsString();
      String part2 = upper.getTextAsString();

      try {
        DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
        df.setLenient(true);
        Date d1 = df.parse(part1);
        Date d2 = df.parse(part2);
        if (inclusive) {
          // The user can only specify the date, not the time, so make sure
          // the time is set to the latest possible time of that date to really
          // include all documents:
          Calendar cal = Calendar.getInstance(locale);
          cal.setTime(d2);
          cal.set(Calendar.HOUR_OF_DAY, 23);
          cal.set(Calendar.MINUTE, 59);
          cal.set(Calendar.SECOND, 59);
          cal.set(Calendar.MILLISECOND, 999);
          d2 = cal.getTime();
        }

        if (dateRes == null) {
          // no default or field specific date resolution has been set,
          // use deprecated DateField to maintain compatibilty with
          // pre-1.9 Lucene versions.
          part1 = DateField.dateToString(d1);
          part2 = DateField.dateToString(d2);

        } else {
          part1 = DateTools.dateToString(d1, dateRes);
          part2 = DateTools.dateToString(d2, dateRes);
        }
      } catch (Exception e) {
        // do nothing
      }

      lower.setText(part1);
      upper.setText(part2);

      return new RangeQueryNode(lower, upper, collator);

    }
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

  final public QueryNode Term(CharSequence field) throws ParseException {
  Token term, boost=null, fuzzySlop=null, goop1, goop2;
  boolean fuzzy = false;
  QueryNode q =null;
  ParametricQueryNode qLower, qUpper;
  float defaultMinSimilarity = 0.5f;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case TERM:
    case NUMBER:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TERM:
        term = jj_consume_token(TERM);
                         q = new FieldQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(term.image), term.beginColumn, term.endColumn);
        break;
      case NUMBER:
        term = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[9] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case FUZZY_SLOP:
        fuzzySlop = jj_consume_token(FUZZY_SLOP);
                                fuzzy=true;
        break;
      default:
        jj_la1[10] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case FUZZY_SLOP:
          fuzzySlop = jj_consume_token(FUZZY_SLOP);
                                                         fuzzy=true;
          break;
        default:
          jj_la1[11] = jj_gen;
          ;
        }
        break;
      default:
        jj_la1[12] = jj_gen;
        ;
      }
       if (fuzzy) {
          float fms = defaultMinSimilarity;
          try {
            fms = Float.valueOf(fuzzySlop.image.substring(1)).floatValue();
          } catch (Exception ignored) { }
         if(fms < 0.0f || fms > 1.0f){
           {if (true) throw new ParseException(new MessageImpl(QueryParserMessages.INVALID_SYNTAX_FUZZY_LIMITS));}
         }
         q = new FuzzyQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(term.image), fms, term.beginColumn, term.endColumn);
       }
      break;
    case RANGEIN_START:
      jj_consume_token(RANGEIN_START);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_GOOP:
        goop1 = jj_consume_token(RANGEIN_GOOP);
        break;
      case RANGEIN_QUOTED:
        goop1 = jj_consume_token(RANGEIN_QUOTED);
        break;
      default:
        jj_la1[13] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_TO:
        jj_consume_token(RANGEIN_TO);
        break;
      default:
        jj_la1[14] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_GOOP:
        goop2 = jj_consume_token(RANGEIN_GOOP);
        break;
      case RANGEIN_QUOTED:
        goop2 = jj_consume_token(RANGEIN_QUOTED);
        break;
      default:
        jj_la1[15] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(RANGEIN_END);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[16] = jj_gen;
        ;
      }
          if (goop1.kind == RANGEIN_QUOTED) {
            goop1.image = goop1.image.substring(1, goop1.image.length()-1);
          }
          if (goop2.kind == RANGEIN_QUOTED) {
            goop2.image = goop2.image.substring(1, goop2.image.length()-1);
          }

          qLower = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.GE,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop1.image), goop1.beginColumn, goop1.endColumn);
                  qUpper = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.LE,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn);
          q = new ParametricRangeQueryNode(qLower, qUpper);
      break;
    case RANGEEX_START:
      jj_consume_token(RANGEEX_START);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_GOOP:
        goop1 = jj_consume_token(RANGEEX_GOOP);
        break;
      case RANGEEX_QUOTED:
        goop1 = jj_consume_token(RANGEEX_QUOTED);
        break;
      default:
        jj_la1[17] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_TO:
        jj_consume_token(RANGEEX_TO);
        break;
      default:
        jj_la1[18] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_GOOP:
        goop2 = jj_consume_token(RANGEEX_GOOP);
        break;
      case RANGEEX_QUOTED:
        goop2 = jj_consume_token(RANGEEX_QUOTED);
        break;
      default:
        jj_la1[19] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(RANGEEX_END);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[20] = jj_gen;
        ;
      }
          if (goop1.kind == RANGEEX_QUOTED) {
            goop1.image = goop1.image.substring(1, goop1.image.length()-1);
          }
          if (goop2.kind == RANGEEX_QUOTED) {
            goop2.image = goop2.image.substring(1, goop2.image.length()-1);
          }
          qLower = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.GT,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop1.image), goop1.beginColumn, goop1.endColumn);
                  qUpper = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.LT,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn);
          q = new ParametricRangeQueryNode(qLower, qUpper);
      break;
    case QUOTED:
      term = jj_consume_token(QUOTED);
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

  @Override
  protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {
   
    if (node instanceof ParametricRangeQueryNode) {
      ParametricRangeQueryNode parametricRangeNode = (ParametricRangeQueryNode) node;
      ParametricQueryNode upper = parametricRangeNode.getUpperBound();
      ParametricQueryNode lower = parametricRangeNode.getLowerBound();
      DateTools.Resolution dateRes = null;
      boolean inclusive = false;
     
      Locale locale = getQueryConfigHandler().get(ConfigurationKeys.LOCALE,
          Locale.getDefault());
     
      Collator collator = getQueryConfigHandler().get(
          ConfigurationKeys.RANGE_COLLATOR);
     
     
      CharSequence field = parametricRangeNode.getField();
      String fieldStr = null;

      if (field != null) {
        fieldStr = field.toString();
      }

      FieldConfig fieldConfig = getQueryConfigHandler()
          .getFieldConfig(fieldStr);

      if (fieldConfig != null) {
        dateRes = fieldConfig.get(ConfigurationKeys.DATE_RESOLUTION);
      }

      if (upper.getOperator() == CompareOperator.LE) {
        inclusive = true;

      } else if (lower.getOperator() == CompareOperator.GE) {
        inclusive = true;
      }

      String part1 = lower.getTextAsString();
      String part2 = upper.getTextAsString();

      try {
        DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
        df.setLenient(true);
        Date d1 = df.parse(part1);
        Date d2 = df.parse(part2);
        if (inclusive) {
          // The user can only specify the date, not the time, so make sure
          // the time is set to the latest possible time of that date to really
          // include all documents:
          Calendar cal = Calendar.getInstance(locale);
          cal.setTime(d2);
          cal.set(Calendar.HOUR_OF_DAY, 23);
          cal.set(Calendar.MINUTE, 59);
          cal.set(Calendar.SECOND, 59);
          cal.set(Calendar.MILLISECOND, 999);
          d2 = cal.getTime();
        }

        if (dateRes == null) {
          // no default or field specific date resolution has been set,
          // use deprecated DateField to maintain compatibilty with
          // pre-1.9 Lucene versions.
          part1 = DateField.dateToString(d1);
          part2 = DateField.dateToString(d2);

        } else {
          part1 = DateTools.dateToString(d1, dateRes);
          part2 = DateTools.dateToString(d2, dateRes);
        }
      } catch (Exception e) {
        // do nothing
      }

      lower.setText(part1);
      upper.setText(part2);

      return new RangeQueryNode(lower, upper, collator);

    }
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

    // empty constructor
  }

  public TermRangeQuery build(QueryNode queryNode) throws QueryNodeException {
    RangeQueryNode rangeNode = (RangeQueryNode) queryNode;
    ParametricQueryNode upper = rangeNode.getUpperBound();
    ParametricQueryNode lower = rangeNode.getLowerBound();

    boolean lowerInclusive = false;
    boolean upperInclusive = false;

    if (upper.getOperator() == CompareOperator.LE) {
      upperInclusive = true;
    }

    if (lower.getOperator() == CompareOperator.GE) {
      lowerInclusive = true;
    }

    String field = rangeNode.getField().toString();

    TermRangeQuery rangeQuery = new TermRangeQuery(field, lower
        .getTextAsString(), upper.getTextAsString(), lowerInclusive,
        upperInclusive, rangeNode.getCollator());
   
    MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod) queryNode
        .getTag(MultiTermRewriteMethodProcessor.TAG_ID);
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

          NumericConfig numericConfig = fieldConfig
              .get(ConfigurationKeys.NUMERIC_CONFIG);
         
          if (numericConfig != null) {
           
            ParametricQueryNode lower = parametricRangeNode.getLowerBound();
            ParametricQueryNode upper = parametricRangeNode.getUpperBound();
           
            NumberFormat numberFormat = numericConfig.getNumberFormat();
            Number lowerNumber, upperNumber;
           
            try {
              lowerNumber = numberFormat.parse(lower.getTextAsString());
             
            } catch (ParseException e) {
              throw new QueryNodeParseException(new MessageImpl(
                  QueryParserMessages.COULD_NOT_PARSE_NUMBER, lower
                      .getTextAsString(), numberFormat.getClass()
                      .getCanonicalName()), e);
            }
           
            try {
              upperNumber = numberFormat.parse(upper.getTextAsString());
             
            } catch (ParseException e) {
              throw new QueryNodeParseException(new MessageImpl(
                  QueryParserMessages.COULD_NOT_PARSE_NUMBER, upper
                      .getTextAsString(), numberFormat.getClass()
                      .getCanonicalName()), e);
            }
           
            switch (numericConfig.getType()) {
              case LONG:
                upperNumber = upperNumber.longValue();
                lowerNumber = lowerNumber.longValue();
                break;
              case INT:
                upperNumber = upperNumber.intValue();
                lowerNumber = lowerNumber.intValue();
                break;
              case DOUBLE:
                upperNumber = upperNumber.doubleValue();
                lowerNumber = lowerNumber.doubleValue();
                break;
              case FLOAT:
                upperNumber = upperNumber.floatValue();
                lowerNumber = lowerNumber.floatValue();
            }
           
            NumericQueryNode lowerNode = new NumericQueryNode(
                parametricRangeNode.getField(), lowerNumber, numberFormat);
            NumericQueryNode upperNode = new NumericQueryNode(
                parametricRangeNode.getField(), upperNumber, numberFormat);
           
            boolean upperInclusive = upper.getOperator() == CompareOperator.LE;
            boolean lowerInclusive = lower.getOperator() == CompareOperator.GE;
           
            return new NumericRangeQueryNode(lowerNode, upperNode,
                lowerInclusive, upperInclusive, numericConfig);
           
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

  @Override
  protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {

    if (node instanceof ParametricRangeQueryNode) {
      ParametricRangeQueryNode parametricRangeNode = (ParametricRangeQueryNode) node;
      ParametricQueryNode upper = parametricRangeNode.getUpperBound();
      ParametricQueryNode lower = parametricRangeNode.getLowerBound();
      Locale locale = Locale.getDefault();
      Collator collator = null;
      DateTools.Resolution dateRes = null;
      boolean inclusive = false;

      if (getQueryConfigHandler().hasAttribute(RangeCollatorAttribute.class)) {

        collator = getQueryConfigHandler().getAttribute(
            RangeCollatorAttribute.class).getRangeCollator();

      }

      if (getQueryConfigHandler().hasAttribute(LocaleAttribute.class)) {

        locale = getQueryConfigHandler().getAttribute(LocaleAttribute.class)
            .getLocale();

      }

      CharSequence field = parametricRangeNode.getField();
      String fieldStr = null;

      if (field != null) {
        fieldStr = field.toString();
      }

      FieldConfig fieldConfig = getQueryConfigHandler()
          .getFieldConfig(fieldStr);

      if (fieldConfig != null) {

        if (fieldConfig.hasAttribute(DateResolutionAttribute.class)) {

          dateRes = fieldConfig.getAttribute(DateResolutionAttribute.class)
              .getDateResolution();

        }

      }

      if (upper.getOperator() == CompareOperator.LE) {
        inclusive = true;

      } else if (lower.getOperator() == CompareOperator.GE) {
        inclusive = true;
      }

      String part1 = lower.getTextAsString();
      String part2 = upper.getTextAsString();

      try {
        DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
        df.setLenient(true);
        Date d1 = df.parse(part1);
        Date d2 = df.parse(part2);
        if (inclusive) {
          // The user can only specify the date, not the time, so make sure
          // the time is set to the latest possible time of that date to really
          // include all documents:
          Calendar cal = Calendar.getInstance(locale);
          cal.setTime(d2);
          cal.set(Calendar.HOUR_OF_DAY, 23);
          cal.set(Calendar.MINUTE, 59);
          cal.set(Calendar.SECOND, 59);
          cal.set(Calendar.MILLISECOND, 999);
          d2 = cal.getTime();
        }

        if (dateRes == null) {
          // no default or field specific date resolution has been set,
          // use deprecated DateField to maintain compatibilty with
          // pre-1.9 Lucene versions.
          part1 = DateField.dateToString(d1);
          part2 = DateField.dateToString(d2);

        } else {
          part1 = DateTools.dateToString(d1, dateRes);
          part2 = DateTools.dateToString(d2, dateRes);
        }
      } catch (Exception e) {
        // do nothing
      }

      lower.setText(part1);
      upper.setText(part2);

      return new RangeQueryNode(lower, upper, collator);

    }
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

  final public QueryNode Term(CharSequence field) throws ParseException {
  Token term, boost=null, fuzzySlop=null, goop1, goop2;
  boolean fuzzy = false;
  QueryNode q =null;
  ParametricQueryNode qLower, qUpper;
  float defaultMinSimilarity = 0.5f;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case TERM:
    case NUMBER:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TERM:
        term = jj_consume_token(TERM);
                         q = new FieldQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(term.image), term.beginColumn, term.endColumn);
        break;
      case NUMBER:
        term = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[9] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case FUZZY_SLOP:
        fuzzySlop = jj_consume_token(FUZZY_SLOP);
                                fuzzy=true;
        break;
      default:
        jj_la1[10] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case FUZZY_SLOP:
          fuzzySlop = jj_consume_token(FUZZY_SLOP);
                                                         fuzzy=true;
          break;
        default:
          jj_la1[11] = jj_gen;
          ;
        }
        break;
      default:
        jj_la1[12] = jj_gen;
        ;
      }
       if (fuzzy) {
          float fms = defaultMinSimilarity;
          try {
            fms = Float.valueOf(fuzzySlop.image.substring(1)).floatValue();
          } catch (Exception ignored) { }
         if(fms < 0.0f || fms > 1.0f){
           {if (true) throw new ParseException(new MessageImpl(QueryParserMessages.INVALID_SYNTAX_FUZZY_LIMITS));}
         }
         q = new FuzzyQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(term.image), fms, term.beginColumn, term.endColumn);
       }
      break;
    case RANGEIN_START:
      jj_consume_token(RANGEIN_START);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_GOOP:
        goop1 = jj_consume_token(RANGEIN_GOOP);
        break;
      case RANGEIN_QUOTED:
        goop1 = jj_consume_token(RANGEIN_QUOTED);
        break;
      default:
        jj_la1[13] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_TO:
        jj_consume_token(RANGEIN_TO);
        break;
      default:
        jj_la1[14] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_GOOP:
        goop2 = jj_consume_token(RANGEIN_GOOP);
        break;
      case RANGEIN_QUOTED:
        goop2 = jj_consume_token(RANGEIN_QUOTED);
        break;
      default:
        jj_la1[15] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(RANGEIN_END);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[16] = jj_gen;
        ;
      }
          if (goop1.kind == RANGEIN_QUOTED) {
            goop1.image = goop1.image.substring(1, goop1.image.length()-1);
          }
          if (goop2.kind == RANGEIN_QUOTED) {
            goop2.image = goop2.image.substring(1, goop2.image.length()-1);
          }

          qLower = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.GE,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop1.image), goop1.beginColumn, goop1.endColumn);
                  qUpper = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.LE,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn);
          q = new ParametricRangeQueryNode(qLower, qUpper);
      break;
    case RANGEEX_START:
      jj_consume_token(RANGEEX_START);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_GOOP:
        goop1 = jj_consume_token(RANGEEX_GOOP);
        break;
      case RANGEEX_QUOTED:
        goop1 = jj_consume_token(RANGEEX_QUOTED);
        break;
      default:
        jj_la1[17] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_TO:
        jj_consume_token(RANGEEX_TO);
        break;
      default:
        jj_la1[18] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_GOOP:
        goop2 = jj_consume_token(RANGEEX_GOOP);
        break;
      case RANGEEX_QUOTED:
        goop2 = jj_consume_token(RANGEEX_QUOTED);
        break;
      default:
        jj_la1[19] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(RANGEEX_END);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[20] = jj_gen;
        ;
      }
          if (goop1.kind == RANGEEX_QUOTED) {
            goop1.image = goop1.image.substring(1, goop1.image.length()-1);
          }
          if (goop2.kind == RANGEEX_QUOTED) {
            goop2.image = goop2.image.substring(1, goop2.image.length()-1);
          }
          qLower = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.GT,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop1.image), goop1.beginColumn, goop1.endColumn);
                  qUpper = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.LT,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn);
          q = new ParametricRangeQueryNode(qLower, qUpper);
      break;
    case QUOTED:
      term = jj_consume_token(QUOTED);
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

    // empty constructor
  }

  public TermRangeQuery build(QueryNode queryNode) throws QueryNodeException {
    RangeQueryNode rangeNode = (RangeQueryNode) queryNode;
    ParametricQueryNode upper = rangeNode.getUpperBound();
    ParametricQueryNode lower = rangeNode.getLowerBound();

    boolean lowerInclusive = false;
    boolean upperInclusive = false;

    if (upper.getOperator() == CompareOperator.LE) {
      upperInclusive = true;
    }

    if (lower.getOperator() == CompareOperator.GE) {
      lowerInclusive = true;
    }

    String field = rangeNode.getField().toString();

    TermRangeQuery rangeQuery = new TermRangeQuery(field, lower
        .getTextAsString(), upper.getTextAsString(), lowerInclusive,
        upperInclusive, rangeNode.getCollator());
   
    MultiTermQuery.RewriteMethod method = (MultiTermQuery.RewriteMethod)queryNode.getTag(MultiTermRewriteMethodAttribute.TAG_ID);
    if (method != null) {
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

  protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException {

    if (node instanceof ParametricRangeQueryNode) {
      ParametricRangeQueryNode parametricRangeNode = (ParametricRangeQueryNode) node;
      ParametricQueryNode upper = parametricRangeNode.getUpperBound();
      ParametricQueryNode lower = parametricRangeNode.getLowerBound();
      Locale locale = Locale.getDefault();
      Collator collator = null;
      DateTools.Resolution dateRes = null;
      boolean inclusive = false;

      if (getQueryConfigHandler().hasAttribute(RangeCollatorAttribute.class)) {
        collator = ((RangeCollatorAttribute) getQueryConfigHandler()
            .getAttribute(RangeCollatorAttribute.class)).getRangeCollator();
      }

      if (getQueryConfigHandler().hasAttribute(LocaleAttribute.class)) {
        locale = ((LocaleAttribute) getQueryConfigHandler().getAttribute(
            LocaleAttribute.class)).getLocale();
      }

      FieldConfig fieldConfig = getQueryConfigHandler().getFieldConfig(
          parametricRangeNode.getField());

      if (fieldConfig != null) {

        if (fieldConfig.hasAttribute(DateResolutionAttribute.class)) {
          dateRes = ((DateResolutionAttribute) fieldConfig
              .getAttribute(DateResolutionAttribute.class)).getDateResolution();
        }

      }

      if (upper.getOperator() == CompareOperator.LE) {
        inclusive = true;

      } else if (lower.getOperator() == CompareOperator.GE) {
        inclusive = true;
      }

      String part1 = lower.getTextAsString();
      String part2 = upper.getTextAsString();

      try {
        DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
        df.setLenient(true);
        Date d1 = df.parse(part1);
        Date d2 = df.parse(part2);
        if (inclusive) {
          // The user can only specify the date, not the time, so make sure
          // the time is set to the latest possible time of that date to really
          // include all documents:
          Calendar cal = Calendar.getInstance(locale);
          cal.setTime(d2);
          cal.set(Calendar.HOUR_OF_DAY, 23);
          cal.set(Calendar.MINUTE, 59);
          cal.set(Calendar.SECOND, 59);
          cal.set(Calendar.MILLISECOND, 999);
          d2 = cal.getTime();
        }

        if (dateRes == null) {
          // no default or field specific date resolution has been set,
          // use deprecated DateField to maintain compatibilty with
          // pre-1.9 Lucene versions.
          part1 = DateField.dateToString(d1);
          part2 = DateField.dateToString(d2);

        } else {
          part1 = DateTools.dateToString(d1, dateRes);
          part2 = DateTools.dateToString(d2, dateRes);
        }
      } catch (Exception e) {
        // do nothing
      }

      lower.setText(part1);
      upper.setText(part2);

      return new RangeQueryNode(lower, upper, collator);

    }
View Full Code Here

Examples of org.apache.lucene.queryParser.core.nodes.ParametricQueryNode

  final public QueryNode Term(CharSequence field) throws ParseException {
  Token term, boost=null, fuzzySlop=null, goop1, goop2;
  boolean fuzzy = false;
  QueryNode q =null;
  ParametricQueryNode qLower, qUpper;
  float defaultMinSimilarity = 0.5f;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case TERM:
    case NUMBER:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TERM:
        term = jj_consume_token(TERM);
                         q = new FieldQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(term.image), term.beginColumn, term.endColumn);
        break;
      case NUMBER:
        term = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[9] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case FUZZY_SLOP:
        fuzzySlop = jj_consume_token(FUZZY_SLOP);
                                fuzzy=true;
        break;
      default:
        jj_la1[10] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case FUZZY_SLOP:
          fuzzySlop = jj_consume_token(FUZZY_SLOP);
                                                         fuzzy=true;
          break;
        default:
          jj_la1[11] = jj_gen;
          ;
        }
        break;
      default:
        jj_la1[12] = jj_gen;
        ;
      }
       if (fuzzy) {
          float fms = defaultMinSimilarity;
          try {
            fms = Float.valueOf(fuzzySlop.image.substring(1)).floatValue();
          } catch (Exception ignored) { }
         if(fms < 0.0f || fms > 1.0f){
           {if (true) throw new ParseException(new MessageImpl(QueryParserMessages.INVALID_SYNTAX_FUZZY_LIMITS));}
         }
         q = new FuzzyQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(term.image), fms, term.beginColumn, term.endColumn);
       }
      break;
    case RANGEIN_START:
      jj_consume_token(RANGEIN_START);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_GOOP:
        goop1 = jj_consume_token(RANGEIN_GOOP);
        break;
      case RANGEIN_QUOTED:
        goop1 = jj_consume_token(RANGEIN_QUOTED);
        break;
      default:
        jj_la1[13] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_TO:
        jj_consume_token(RANGEIN_TO);
        break;
      default:
        jj_la1[14] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEIN_GOOP:
        goop2 = jj_consume_token(RANGEIN_GOOP);
        break;
      case RANGEIN_QUOTED:
        goop2 = jj_consume_token(RANGEIN_QUOTED);
        break;
      default:
        jj_la1[15] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(RANGEIN_END);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[16] = jj_gen;
        ;
      }
          if (goop1.kind == RANGEIN_QUOTED) {
            goop1.image = goop1.image.substring(1, goop1.image.length()-1);
          }
          if (goop2.kind == RANGEIN_QUOTED) {
            goop2.image = goop2.image.substring(1, goop2.image.length()-1);
          }

          qLower = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.GE,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop1.image), goop1.beginColumn, goop1.endColumn);
                  qUpper = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.LE,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn);
          q = new ParametricRangeQueryNode(qLower, qUpper);
      break;
    case RANGEEX_START:
      jj_consume_token(RANGEEX_START);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_GOOP:
        goop1 = jj_consume_token(RANGEEX_GOOP);
        break;
      case RANGEEX_QUOTED:
        goop1 = jj_consume_token(RANGEEX_QUOTED);
        break;
      default:
        jj_la1[17] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_TO:
        jj_consume_token(RANGEEX_TO);
        break;
      default:
        jj_la1[18] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case RANGEEX_GOOP:
        goop2 = jj_consume_token(RANGEEX_GOOP);
        break;
      case RANGEEX_QUOTED:
        goop2 = jj_consume_token(RANGEEX_QUOTED);
        break;
      default:
        jj_la1[19] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(RANGEEX_END);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CARAT:
        jj_consume_token(CARAT);
        boost = jj_consume_token(NUMBER);
        break;
      default:
        jj_la1[20] = jj_gen;
        ;
      }
          if (goop1.kind == RANGEEX_QUOTED) {
            goop1.image = goop1.image.substring(1, goop1.image.length()-1);
          }
          if (goop2.kind == RANGEEX_QUOTED) {
            goop2.image = goop2.image.substring(1, goop2.image.length()-1);
          }
          qLower = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.GT,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop1.image), goop1.beginColumn, goop1.endColumn);
                  qUpper = new ParametricQueryNode(field, ParametricQueryNode.CompareOperator.LT,
                                               EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn);
          q = new ParametricRangeQueryNode(qLower, qUpper);
      break;
    case QUOTED:
      term = jj_consume_token(QUOTED);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.