Author: ssmiweve
Date: 2008-03-06 11:29:32 +0100 (Thu, 06 Mar 2008)
New Revision: 6228
Modified:
branches/2.16/query-api/src/main/java/no/sesat/search/query/parser/AbstractQueryParser.java
branches/2.16/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
Log:
SEARCH-4305 - Unable to create RunningQuery's query due to ParseException of ?
Modified:
branches/2.16/query-api/src/main/java/no/sesat/search/query/parser/AbstractQueryParser.java
===================================================================
---
branches/2.16/query-api/src/main/java/no/sesat/search/query/parser/AbstractQueryParser.java
2008-03-05 11:16:27 UTC (rev 6227)
+++
branches/2.16/query-api/src/main/java/no/sesat/search/query/parser/AbstractQueryParser.java
2008-03-06 10:29:32 UTC (rev 6228)
@@ -50,6 +50,8 @@
// Constants -----------------------------------------------------
+ public static final String SKIP_REGEX;
+
/** Protected so an .jj file implementing this class can reuse.
**/
protected static final Logger LOG =
Logger.getLogger(AbstractQueryParser.class);
@@ -76,6 +78,18 @@
// Static --------------------------------------------------------
+ static{
+
+ // build our skip regular expression
+ final StringBuilder builder = new StringBuilder();
+ for(char[] range : QueryParser.SKIP_CHARACTER_RANGES){
+ builder.append("[\\" + range[0] + "-\\" + range[1] + "]|");
+ }
+ // remove trailing '|'
+ builder.setLength(builder.length() - 1);
+ // our skip regular expression
+ SKIP_REGEX = '(' + builder.toString() + ')';
+ }
// Constructors --------------------------------------------------
@@ -96,13 +110,15 @@
*/
public Query getQuery(){
if( query == null ){
- final String queryStr = context.getQueryString();
+ final String q = context.getQueryString();
+
if( context == null ){
throw new IllegalStateException(ERR_EMPTY_CONTEXT);
}
+
final ParentFinder parentFinder = new ParentFinder();
try{
- if( null != queryStr && 0 < queryStr.trim().length() &&
!"*".equals(queryStr) ){
+ if( null != q && 0 < q.replaceAll(SKIP_REGEX,
"").trim().length() && !"*".equals(q) ){
// Uncomment the following line, and comment the line
after than, to disable RotationAlternation.
//final Clause root = parse();
@@ -112,16 +128,16 @@
}
}catch(ParseException pe){
- LOG.warn(ERR_PARSING + queryStr, pe);
+ LOG.warn(ERR_PARSING + q, pe);
// also let product department know these queries are not
working
PRODUCT_LOG.info("<invalid-query type=\"ParseException\">"
- + StringEscapeUtils.escapeXml(queryStr) +
"</invalid-query>");
+ + StringEscapeUtils.escapeXml(q) + "</invalid-query>");
} catch (TokenMgrError tme) {
- LOG.error(ERR_PARSING + queryStr, tme);
+ LOG.error(ERR_PARSING + q, tme);
// also let product department know these queries are not
working
PRODUCT_LOG.info("<invalid-query type=\"TokenMgrError\">"
- + StringEscapeUtils.escapeXml(queryStr) +
"</invalid-query>");
+ + StringEscapeUtils.escapeXml(q) + "</invalid-query>");
}
if( query == null ){
Modified:
branches/2.16/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
===================================================================
---
branches/2.16/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
2008-03-05 11:16:27 UTC (rev 6227)
+++
branches/2.16/query-api/src/main/java/no/sesat/search/query/token/VeryFastTokenEvaluator.java
2008-03-06 10:29:32 UTC (rev 6228)
@@ -47,6 +47,7 @@
import no.sesat.search.http.HTTPClient;
import no.sesat.search.query.QueryStringContext;
import no.sesat.search.query.parser.QueryParser;
+import static no.sesat.search.query.parser.AbstractQueryParser.SKIP_REGEX;
import no.sesat.search.site.Site;
import no.sesat.search.site.SiteContext;
@@ -96,7 +97,6 @@
private static final int REFRESH_PERIOD = 60; // one minute
private static final int CACHE_CAPACITY = 100; // smaller than usual as
each entry can contain up to 600 values!
- private static final String SKIP_REGEX;
private static final String OPERATOR_REGEX;
// Attributes ----------------------------------------------------
@@ -110,16 +110,7 @@
static{
CACHE.setCacheCapacity(CACHE_CAPACITY);
- // build our skip regular expression
- final StringBuilder builder = new StringBuilder();
- for(char[] range : QueryParser.SKIP_CHARACTER_RANGES){
- builder.append("[\\" + range[0] + "-\\" + range[1] + "]|");
- }
- // remove trailing '|'
- builder.setLength(builder.length() - 1);
- // our skip regular expression
- SKIP_REGEX = '(' + builder.toString() + ')';
-
+ // build our operator regular expression
final StringBuilder operatorRegexpBuilder = new StringBuilder();
operatorRegexpBuilder.append('(');
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits