https://www.mediawiki.org/wiki/Special:Code/MediaWiki/109810
Revision: 109810 Author: oren Date: 2012-01-23 09:03:02 +0000 (Mon, 23 Jan 2012) Log Message: ----------- some comments Modified Paths: -------------- trunk/lucene-search-3/src/main/java/org/wikimedia/lsearch/analyzers/WikiQueryParser.java Modified: trunk/lucene-search-3/src/main/java/org/wikimedia/lsearch/analyzers/WikiQueryParser.java =================================================================== --- trunk/lucene-search-3/src/main/java/org/wikimedia/lsearch/analyzers/WikiQueryParser.java 2012-01-23 08:33:31 UTC (rev 109809) +++ trunk/lucene-search-3/src/main/java/org/wikimedia/lsearch/analyzers/WikiQueryParser.java 2012-01-23 09:03:02 UTC (rev 109810) @@ -44,6 +44,10 @@ * Parser for wiki query syntax * * @author rainman + * note: cutstom queries used imply the need for a special query parser + * however, hand crafted query parsers are notorious for being buggy - + * consider using a grammer based grammar or using one of the built in + * QueryParsers */ public class WikiQueryParser { private static final int MAX_TERM_LEN = 255; @@ -470,7 +474,7 @@ public HashSet<NamespaceFilter> getFieldNamespaces(String queryText) { HashSet<String> fields = getFields(queryText); HashSet<NamespaceFilter> ret = new HashSet<NamespaceFilter>(); - List ThreadingKeywords = new ArrayList(); + List<String> ThreadingKeywords = new ArrayList<String>(); ThreadingKeywords.add("inthread"); for (String field : fields) { @@ -1323,7 +1327,7 @@ } // don't returned nested if one query only if (queries.size() == 1) { - BooleanQuery q = (BooleanQuery) queries.get(0); + BooleanQuery q = queries.get(0); // one nested clause if (q.getClauses().length == 1) return q.getClauses()[0].getQuery(); @@ -1535,7 +1539,6 @@ /** * Construct a full query on all the fields in the index from search text */ - @SuppressWarnings("unchecked") public Query parse(String queryText, ParsingOptions options) { this.wildcards = options.wildcards; this.fuzzy = options.fuzzy; @@ -1689,7 +1692,11 @@ return ret; } - /** Recursively transverse queries and put stop words to SHOULD */ + /** + * Recursively transverse queries and put stop words to SHOULD + * + * @deprecated - unused private method + */ private void filterStopWords(BooleanQuery bq) { if (stopWords == null && stopWords.size() == 0) return; @@ -1799,9 +1806,11 @@ defaultBoost = olfDefaultBoost; defaultAliasBoost = ALIAS_BOOST; + // TODO: fix the bug in this logic - either add qt==null || qs==null or + // remove return if (qt == qs || qt.equals(qs)) // either null, or category query return qt; - if (qt == null) + if (qt == null) // this cannot happen return qs; if (qs == null) return qt; @@ -1811,7 +1820,9 @@ return bq; } - /** Extract MUST_NOT clauses form a query */ + /** + * Extract MUST_NOT clauses form a query + */ protected static BooleanQuery extractForbidden(Query q) { BooleanQuery bq = new BooleanQuery(); extractForbiddenRecursive(bq, q); @@ -1821,7 +1832,9 @@ return bq; } - /** Recursivily extract all MUST_NOT clauses from query */ + /** + * Recursively extract all MUST_NOT clauses from query + */ protected static void extractForbiddenRecursive(BooleanQuery forbidden, Query q) { if (q instanceof BooleanQuery) { _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs