You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by bu...@apache.org on 2011/01/03 01:30:45 UTC
svn commit: r1054507 [6/9] - in /lucene/dev/branches/realtime_search: ./
dev-tools/ dev-tools/eclipse/ dev-tools/idea/ dev-tools/idea/.idea/
dev-tools/idea/.idea/libraries/ dev-tools/idea/lucene/
dev-tools/idea/lucene/contrib/ dev-tools/idea/lucene/con...
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/DisMaxQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/DisMaxQParserPlugin.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/DisMaxQParserPlugin.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/DisMaxQParserPlugin.java Mon Jan 3 00:30:27 2011
@@ -22,10 +22,92 @@ import org.apache.solr.request.SolrQuery
/**
* Create a dismax query from the input value.
- * <br>Other parameters: all main query related parameters from the {@link org.apache.solr.handler.DisMaxRequestHandler} are supported.
- * localParams are checked before global request params.
+ * <br>localParams are checked before global request params.
* <br>Example: <code>{!dismax qf='myfield mytitle^2'}foo</code> creates a dismax query across
* across myfield and mytitle, with a higher weight on mytitle.
+ *
+ * <p>
+ * A Generic query plugin designed to be given a simple query expression
+ * from a user, which it will then query against a variety of
+ * pre-configured fields, in a variety of ways, using BooleanQueries,
+ * DisjunctionMaxQueries, and PhraseQueries.
+ * </p>
+ *
+ * <p>
+ * All of the following options may be configured for this plugin
+ * in the solrconfig as defaults, and may be overriden as request parameters
+ * </p>
+ *
+ * <ul>
+ * <li>q.alt - An alternate query to be used in cases where the main
+ * query (q) is not specified (or blank). This query should
+ * be expressed in the Standard SolrQueryParser syntax (you
+ * can use <code>q.alt=*:*</code> to denote that all documents
+ * should be returned when no query is specified)
+ * </li>
+ * <li>tie - (Tie breaker) float value to use as tiebreaker in
+ * DisjunctionMaxQueries (should be something much less than 1)
+ * </li>
+ * <li> qf - (Query Fields) fields and boosts to use when building
+ * DisjunctionMaxQueries from the users query. Format is:
+ * "<code>fieldA^1.0 fieldB^2.2</code>".
+ * This param can be specified multiple times, and the fields
+ * are additive.
+ * </li>
+ * <li> mm - (Minimum Match) this supports a wide variety of
+ * complex expressions.
+ * read {@link org.apache.solr.util.SolrPluginUtils#setMinShouldMatch SolrPluginUtils.setMinShouldMatch} and <a href="http://lucene.apache.org/solr/api/org/apache/solr/util/doc-files/min-should-match.html">mm expression format</a> for details.
+ * </li>
+ * <li> pf - (Phrase Fields) fields/boosts to make phrase queries out
+ * of, to boost the users query for exact matches on the specified fields.
+ * Format is: "<code>fieldA^1.0 fieldB^2.2</code>".
+ * This param can be specified multiple times, and the fields
+ * are additive.
+ * </li>
+ * <li> ps - (Phrase Slop) amount of slop on phrase queries built for pf
+ * fields.
+ * </li>
+ * <li> qs - (Query Slop) amount of slop on phrase queries explicitly
+ * specified in the "q" for qf fields.
+ * </li>
+ * <li> bq - (Boost Query) a raw lucene query that will be included in the
+ * users query to influence the score. If this is a BooleanQuery
+ * with a default boost (1.0f), then the individual clauses will be
+ * added directly to the main query. Otherwise, the query will be
+ * included as is.
+ * This param can be specified multiple times, and the boosts are
+ * are additive. NOTE: the behaviour listed above is only in effect
+ * if a single <code>bq</code> paramter is specified. Hence you can
+ * disable it by specifying an additional, blank, <code>bq</code>
+ * parameter.
+ * </li>
+ * <li> bf - (Boost Functions) functions (with optional boosts) that will be
+ * included in the users query to influence the score.
+ * Format is: "<code>funcA(arg1,arg2)^1.2
+ * funcB(arg3,arg4)^2.2</code>". NOTE: Whitespace is not allowed
+ * in the function arguments.
+ * This param can be specified multiple times, and the functions
+ * are additive.
+ * </li>
+ * <li> fq - (Filter Query) a raw lucene query that can be used
+ * to restrict the super set of products we are interested in - more
+ * efficient then using bq, but doesn't influence score.
+ * This param can be specified multiple times, and the filters
+ * are additive.
+ * </li>
+ * </ul>
+ *
+ * <p>
+ * The following options are only available as request params...
+ * </p>
+ *
+ * <ul>
+ * <li> q - (Query) the raw unparsed, unescaped, query from the user.
+ * </li>
+ * <li>sort - (Order By) list of fields and direction to sort on.
+ * </li>
+ * </ul>
+ *
*/
public class DisMaxQParserPlugin extends QParserPlugin {
public static String NAME = "dismax";
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/DocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/DocSet.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/DocSet.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/DocSet.java Mon Jan 3 00:30:27 2011
@@ -89,10 +89,7 @@ public interface DocSet /* extends Colle
*
* @return
* An OpenBitSet with the bit number of every docid set in the set.
- *
- * @deprecated Use {@link #iterator()} to access all docs instead.
*/
- @Deprecated
public OpenBitSet getBits();
/**
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java Mon Jan 3 00:30:27 2011
@@ -27,7 +27,6 @@ import org.apache.lucene.queryParser.Que
import org.apache.lucene.search.*;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
-import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.DefaultSolrParams;
import org.apache.solr.common.params.DisMaxParams;
import org.apache.solr.common.params.SolrParams;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/FieldQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/FieldQParserPlugin.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/FieldQParserPlugin.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/FieldQParserPlugin.java Mon Jan 3 00:30:27 2011
@@ -16,24 +16,14 @@
*/
package org.apache.solr.search;
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.Token;
-import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.*;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
-import org.apache.solr.common.SolrException;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.schema.FieldType;
-import org.apache.solr.schema.TextField;
import org.apache.solr.schema.SchemaField;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-
/**
* Create a field query from the input value, applying text analysis and constructing a phrase query if appropriate.
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/FunctionRangeQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/FunctionRangeQParserPlugin.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/FunctionRangeQParserPlugin.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/FunctionRangeQParserPlugin.java Mon Jan 3 00:30:27 2011
@@ -18,8 +18,6 @@ package org.apache.solr.search;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
-import org.apache.lucene.search.ConstantScoreQuery;
-import org.apache.lucene.search.Filter;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.SolrQueryRequest;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/LuceneQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/LuceneQParserPlugin.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/LuceneQParserPlugin.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/LuceneQParserPlugin.java Mon Jan 3 00:30:27 2011
@@ -17,7 +17,6 @@
package org.apache.solr.search;
import org.apache.lucene.queryParser.ParseException;
-import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Sort;
import org.apache.solr.common.SolrException;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/LuceneQueryOptimizer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/LuceneQueryOptimizer.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/LuceneQueryOptimizer.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/LuceneQueryOptimizer.java Mon Jan 3 00:30:27 2011
@@ -24,7 +24,6 @@ package org.apache.solr.search;
import org.apache.lucene.search.*;
import java.util.LinkedHashMap;
-import java.util.List;
import java.util.Map;
import java.io.IOException;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/NestedQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/NestedQParserPlugin.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/NestedQParserPlugin.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/NestedQParserPlugin.java Mon Jan 3 00:30:27 2011
@@ -21,9 +21,6 @@ import org.apache.lucene.search.Query;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.SolrQueryRequest;
-import org.apache.solr.search.function.BoostedQuery;
-import org.apache.solr.search.function.FunctionQuery;
-import org.apache.solr.search.function.QueryValueSource;
import org.apache.solr.search.function.ValueSource;
/**
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/QueryParsing.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/QueryParsing.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/QueryParsing.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/QueryParsing.java Mon Jan 3 00:30:27 2011
@@ -19,7 +19,6 @@ package org.apache.solr.search;
import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.ParseException;
-import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.queryParser.QueryParser.Operator;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
@@ -44,14 +43,11 @@ import org.apache.solr.schema.IndexSchem
import org.apache.solr.schema.SchemaField;
import org.apache.solr.search.function.FunctionQuery;
import org.apache.solr.search.function.QueryValueSource;
-import org.apache.solr.search.function.ValueSource;
-
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.regex.Pattern;
/**
* Collection of static utilities useful for query parsing.
@@ -87,68 +83,6 @@ public class QueryParsing {
if (null == val) val = sch.getQueryParserDefaultOperator();
return "AND".equals(val) ? Operator.AND : Operator.OR;
}
-
-
-
- /**
- * Helper utility for parsing a query using the Lucene QueryParser syntax.
- *
- * @param qs query expression in standard Lucene syntax
- * @param schema used for default operator (overridden by params) and passed to the query parser for field format analysis information
- */
- public static Query parseQuery(String qs, IndexSchema schema) {
- return parseQuery(qs, null, schema);
- }
-
- /**
- * Helper utility for parsing a query using the Lucene QueryParser syntax.
- *
- * @param qs query expression in standard Lucene syntax
- * @param defaultField default field used for unqualified search terms in the query expression
- * @param schema used for default operator (overridden by params) and passed to the query parser for field format analysis information
- */
- public static Query parseQuery(String qs, String defaultField, IndexSchema schema) {
- try {
- Query query = schema.getSolrQueryParser(defaultField).parse(qs);
-
- if (SolrCore.log.isTraceEnabled()) {
- SolrCore.log.trace("After QueryParser:" + query);
- }
-
- return query;
-
- } catch (ParseException e) {
- SolrCore.log(e);
- throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Error parsing Lucene query", e);
- }
- }
-
- /**
- * Helper utility for parsing a query using the Lucene QueryParser syntax.
- *
- * @param qs query expression in standard Lucene syntax
- * @param defaultField default field used for unqualified search terms in the query expression
- * @param params used to determine the default operator, overriding the schema specified operator
- * @param schema used for default operator (overridden by params) and passed to the query parser for field format analysis information
- */
- public static Query parseQuery(String qs, String defaultField, SolrParams params, IndexSchema schema) {
- try {
- SolrQueryParser parser = schema.getSolrQueryParser(defaultField);
- parser.setDefaultOperator(getQueryParserDefaultOperator
- (schema, params.get(QueryParsing.OP)));
- Query query = parser.parse(qs);
-
- if (SolrCore.log.isTraceEnabled()) {
- SolrCore.log.trace("After QueryParser:" + query);
- }
-
- return query;
-
- } catch (ParseException e) {
- SolrCore.log(e);
- throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Query parsing error: " + e.getMessage(), e);
- }
- }
// note to self: something needs to detect infinite recursion when parsing queries
@@ -911,45 +845,4 @@ public class QueryParsing {
return out;
}
- /**
- * Parse a function, returning a FunctionQuery
- * <p/>
- * <p>
- * Syntax Examples....
- * </p>
- * <p/>
- * <pre>
- * // Numeric fields default to correct type
- * // (ie: IntFieldSource or FloatFieldSource)
- * // Others use explicit ord(...) to generate numeric field value
- * myfield
- * <p/>
- * // OrdFieldSource
- * ord(myfield)
- * <p/>
- * // ReverseOrdFieldSource
- * rord(myfield)
- * <p/>
- * // LinearFloatFunction on numeric field value
- * linear(myfield,1,2)
- * <p/>
- * // MaxFloatFunction of LinearFloatFunction on numeric field value or constant
- * max(linear(myfield,1,2),100)
- * <p/>
- * // ReciprocalFloatFunction on numeric field value
- * recip(myfield,1,2,3)
- * <p/>
- * // ReciprocalFloatFunction on ReverseOrdFieldSource
- * recip(rord(myfield),1,2,3)
- * <p/>
- * // ReciprocalFloatFunction on LinearFloatFunction on ReverseOrdFieldSource
- * recip(linear(rord(myfield),1,2),3,4,5)
- * </pre>
- */
- public static FunctionQuery parseFunction(String func, IndexSchema schema) throws ParseException {
- SolrCore core = SolrCore.getSolrCore();
- return (FunctionQuery) (QParser.getParser(func, "func", new LocalSolrQueryRequest(core, new HashMap())).parse());
- // return new FunctionQuery(parseValSource(new StrParser(func), schema));
- }
-
}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/QueryResultKey.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/QueryResultKey.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/QueryResultKey.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/QueryResultKey.java Mon Jan 3 00:30:27 2011
@@ -17,13 +17,9 @@
package org.apache.solr.search;
-import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
-import org.apache.solr.common.SolrException.ErrorCode;
-import org.apache.solr.common.SolrException;
-
import java.io.IOException;
import java.util.List;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrCacheBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrCacheBase.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrCacheBase.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrCacheBase.java Mon Jan 3 00:30:27 2011
@@ -17,16 +17,6 @@
package org.apache.solr.search;
-import org.apache.solr.common.SolrException;
-import org.apache.solr.common.util.NamedList;
-import org.apache.solr.common.util.SimpleOrderedMap;
-import org.apache.solr.core.SolrCore;
-
-import java.util.*;
-import java.util.concurrent.atomic.AtomicLong;
-import java.io.IOException;
-import java.net.URL;
-
/**
* Common base class of reusable functionality for SolrCaches
*/
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java Mon Jan 3 00:30:27 2011
@@ -35,7 +35,6 @@ import org.apache.solr.core.SolrInfoMBea
import org.apache.solr.request.UnInvertedField;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
-import org.apache.solr.search.function.ValueSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -95,14 +94,6 @@ public class SolrIndexSearcher extends I
private final Collection<String> fieldNames;
private Collection<String> storedHighlightFieldNames;
- /** Creates a searcher searching the index in the named directory.
- *
- * @deprecated use alternate constructor
- */
- @Deprecated
- public SolrIndexSearcher(SolrCore core, IndexSchema schema, String name, String path, boolean enableCache) throws IOException {
- this(core, schema,name, core.getIndexReaderFactory().newReader(core.getDirectoryFactory().open(path), false), true, enableCache);
- }
/*
* Creates a searcher searching the index in the provided directory. Note:
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrQueryParser.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrQueryParser.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SolrQueryParser.java Mon Jan 3 00:30:27 2011
@@ -39,9 +39,6 @@ import org.apache.solr.schema.IndexSchem
import org.apache.solr.schema.SchemaField;
import org.apache.solr.schema.TextField;
-// TODO: implement the analysis of simple fields with
-// FieldType.toInternal() instead of going through the
-// analyzer. Should lead to faster query parsing.
/**
* A variation on the Lucene QueryParser which knows about the field
@@ -57,8 +54,6 @@ import org.apache.solr.schema.TextField;
* If the magic field name "<code>_val_</code>" is used in a term or
* phrase query, the value is parsed as a function.
* </p>
- *
- * @see QueryParsing#parseFunction
*/
public class SolrQueryParser extends QueryParser {
protected final IndexSchema schema;
@@ -67,32 +62,12 @@ public class SolrQueryParser extends Que
protected final Map<String, ReversedWildcardFilterFactory> leadingWildcards =
new HashMap<String, ReversedWildcardFilterFactory>();
- /**
- * Constructs a SolrQueryParser using the schema to understand the
- * formats and datatypes of each field. Only the defaultSearchField
- * will be used from the IndexSchema (unless overridden),
- * <solrQueryParser> will not be used.
- *
- * @param schema Used for default search field name if defaultField is null and field information is used for analysis
- * @param defaultField default field used for unspecified search terms. if null, the schema default field is used
- * @see IndexSchema#getDefaultSearchFieldName()
- */
- public SolrQueryParser(IndexSchema schema, String defaultField) {
- super(schema.getSolrConfig().getLuceneVersion("luceneMatchVersion", Version.LUCENE_30), defaultField == null ? schema.getDefaultSearchFieldName() : defaultField, schema.getQueryAnalyzer());
- this.schema = schema;
- this.parser = null;
- this.defaultField = defaultField;
- setLowercaseExpandedTerms(false);
- setEnablePositionIncrements(true);
- checkAllowLeadingWildcards();
- }
-
public SolrQueryParser(QParser parser, String defaultField) {
this(parser, defaultField, parser.getReq().getSchema().getQueryAnalyzer());
}
public SolrQueryParser(QParser parser, String defaultField, Analyzer analyzer) {
- super(parser.getReq().getSchema().getSolrConfig().getLuceneVersion("luceneMatchVersion", Version.LUCENE_30), defaultField, analyzer);
+ super(parser.getReq().getCore().getSolrConfig().getLuceneVersion("luceneMatchVersion", Version.LUCENE_30), defaultField, analyzer);
this.schema = parser.getReq().getSchema();
this.parser = parser;
this.defaultField = defaultField;
@@ -138,12 +113,8 @@ public class SolrQueryParser extends Que
// own functions.
if (field.charAt(0) == '_') {
if ("_val_".equals(field)) {
- if (parser==null) {
- return QueryParsing.parseFunction(queryText, schema);
- } else {
- QParser nested = parser.subQuery(queryText, "func");
- return nested.getQuery();
- }
+ QParser nested = parser.subQuery(queryText, "func");
+ return nested.getQuery();
} else if ("_query_".equals(field) && parser != null) {
return parser.subQuery(queryText, null).getQuery();
}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SpatialFilterQParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SpatialFilterQParser.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SpatialFilterQParser.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/SpatialFilterQParser.java Mon Jan 3 00:30:27 2011
@@ -22,7 +22,6 @@ import org.apache.lucene.search.Query;
import org.apache.lucene.spatial.geometry.DistanceUnits;
import org.apache.lucene.spatial.DistanceUtils;
import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.params.SpatialParams;
import org.apache.solr.request.SolrQueryRequest;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/ValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/ValueSourceParser.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/ValueSourceParser.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/ValueSourceParser.java Mon Jan 3 00:30:27 2011
@@ -614,7 +614,7 @@ class DateValueSourceParser extends Valu
public ValueSource getValueSource(FunctionQParser fp, String arg) {
if (arg == null) return null;
SchemaField f = fp.req.getSchema().getField(arg);
- if (f.getType().getClass() == DateField.class || f.getType().getClass() == LegacyDateField.class) {
+ if (f.getType().getClass() == DateField.class) {
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Can't use ms() function on non-numeric legacy date field " + arg);
}
return f.getType().getValueSource(f, fp);
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ByteFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ByteFieldSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ByteFieldSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ByteFieldSource.java Mon Jan 3 00:30:27 2011
@@ -17,12 +17,8 @@ package org.apache.solr.search.function;
*/
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.search.FieldCache;
import org.apache.lucene.search.cache.ByteValuesCreator;
-import org.apache.lucene.search.cache.LongValuesCreator;
import org.apache.lucene.search.cache.CachedArray.ByteValues;
-import org.apache.lucene.search.cache.CachedArray.DoubleValues;
-import org.apache.lucene.search.cache.CachedArray.LongValues;
import java.io.IOException;
import java.util.Map;
@@ -86,4 +82,4 @@ public class ByteFieldSource extends Num
};
}
-}
\ No newline at end of file
+}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ConstNumberSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ConstNumberSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ConstNumberSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ConstNumberSource.java Mon Jan 3 00:30:27 2011
@@ -17,11 +17,6 @@
package org.apache.solr.search.function;
-import org.apache.lucene.index.IndexReader;
-
-import java.io.IOException;
-import java.util.Map;
-
/**
* <code>ConstNumberSource</code> is the base class for all constant numbers
*/
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/DocFreqValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/DocFreqValueSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/DocFreqValueSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/DocFreqValueSource.java Mon Jan 3 00:30:27 2011
@@ -23,7 +23,6 @@ import org.apache.lucene.search.Searcher
import org.apache.lucene.util.BytesRef;
import org.apache.solr.search.MutableValueInt;
import org.apache.solr.search.MutableValue;
-import org.apache.solr.util.ByteUtils;
import java.io.IOException;
import java.util.Map;
@@ -242,9 +241,7 @@ public class DocFreqValueSource extends
@Override
public DocValues getValues(Map context, IndexReader reader) throws IOException {
Searcher searcher = (Searcher)context.get("searcher");
- // todo: we need docFreq that takes a BytesRef
- String strVal = ByteUtils.UTF8toUTF16(indexedBytes);
- int docfreq = searcher.docFreq(new Term(indexedField, strVal));
+ int docfreq = searcher.docFreq(new Term(indexedField, indexedBytes));
return new ConstIntDocValues(docfreq, this);
}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/DoubleFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/DoubleFieldSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/DoubleFieldSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/DoubleFieldSource.java Mon Jan 3 00:30:27 2011
@@ -19,11 +19,8 @@ package org.apache.solr.search.function;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.util.Bits;
-import org.apache.lucene.search.FieldCache;
import org.apache.lucene.search.cache.DoubleValuesCreator;
-import org.apache.lucene.search.cache.FloatValuesCreator;
import org.apache.lucene.search.cache.CachedArray.DoubleValues;
-import org.apache.lucene.search.cache.CachedArray.FloatValues;
import org.apache.solr.search.MutableValue;
import org.apache.solr.search.MutableValueDouble;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/FileFloatSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/FileFloatSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/FileFloatSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/FileFloatSource.java Mon Jan 3 00:30:27 2011
@@ -21,7 +21,6 @@ import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.util.StringHelper;
-import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.core.SolrCore;
import org.apache.solr.schema.SchemaField;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/IDFValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/IDFValueSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/IDFValueSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/IDFValueSource.java Mon Jan 3 00:30:27 2011
@@ -18,12 +18,9 @@
package org.apache.solr.search.function;
import org.apache.lucene.index.*;
-import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.Searcher;
import org.apache.lucene.search.Similarity;
import org.apache.lucene.util.BytesRef;
-import org.apache.solr.common.SolrException;
-import org.apache.solr.search.SolrIndexReader;
import org.apache.solr.util.ByteUtils;
import java.io.IOException;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/IntFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/IntFieldSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/IntFieldSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/IntFieldSource.java Mon Jan 3 00:30:27 2011
@@ -21,11 +21,7 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.util.Bits;
import org.apache.solr.search.MutableValueInt;
import org.apache.solr.search.MutableValue;
-import org.apache.lucene.search.FieldCache;
-import org.apache.lucene.search.cache.FloatValuesCreator;
import org.apache.lucene.search.cache.IntValuesCreator;
-import org.apache.lucene.search.cache.CachedArray.DoubleValues;
-import org.apache.lucene.search.cache.CachedArray.FloatValues;
import org.apache.lucene.search.cache.CachedArray.IntValues;
import java.io.IOException;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/NormValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/NormValueSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/NormValueSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/NormValueSource.java Mon Jan 3 00:30:27 2011
@@ -20,8 +20,6 @@ package org.apache.solr.search.function;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.Searcher;
import org.apache.lucene.search.Similarity;
-import org.apache.solr.search.SolrIndexReader;
-
import java.io.IOException;
import java.util.Map;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/OrdFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/OrdFieldSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/OrdFieldSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/OrdFieldSource.java Mon Jan 3 00:30:27 2011
@@ -20,7 +20,6 @@ package org.apache.solr.search.function;
import org.apache.lucene.index.IndexReader;
import org.apache.solr.search.MutableValue;
import org.apache.solr.search.MutableValueInt;
-import org.apache.solr.util.NumberUtils;
import java.io.IOException;
import java.util.Map;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/PowFloatFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/PowFloatFunction.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/PowFloatFunction.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/PowFloatFunction.java Mon Jan 3 00:30:27 2011
@@ -17,10 +17,6 @@
package org.apache.solr.search.function;
-import org.apache.lucene.index.IndexReader;
-
-import java.io.IOException;
-
/** Function to raise the base "a" to the power "b"
*/
public class PowFloatFunction extends DualFloatFunction {
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ShortFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ShortFieldSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ShortFieldSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ShortFieldSource.java Mon Jan 3 00:30:27 2011
@@ -16,11 +16,7 @@ package org.apache.solr.search.function;
* limitations under the License.
*/
-import org.apache.lucene.search.FieldCache;
-import org.apache.lucene.search.cache.FloatValuesCreator;
import org.apache.lucene.search.cache.ShortValuesCreator;
-import org.apache.lucene.search.cache.CachedArray.FloatValues;
-import org.apache.lucene.search.cache.CachedArray.LongValues;
import org.apache.lucene.search.cache.CachedArray.ShortValues;
import org.apache.lucene.index.IndexReader;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/SumFloatFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/SumFloatFunction.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/SumFloatFunction.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/SumFloatFunction.java Mon Jan 3 00:30:27 2011
@@ -17,13 +17,6 @@
package org.apache.solr.search.function;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.search.Searcher;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Map;
-
/**
* <code>SumFloatFunction</code> returns the sum of it's components.
*/
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/TermFreqValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/TermFreqValueSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/TermFreqValueSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/TermFreqValueSource.java Mon Jan 3 00:30:27 2011
@@ -19,8 +19,6 @@ package org.apache.solr.search.function;
import org.apache.lucene.index.*;
import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.Searcher;
-import org.apache.lucene.search.Similarity;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.common.SolrException;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ValueSource.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ValueSource.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ValueSource.java Mon Jan 3 00:30:27 2011
@@ -18,7 +18,6 @@
package org.apache.solr.search.function;
import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.search.FieldComparatorSource;
import org.apache.lucene.search.Scorer;
@@ -42,18 +41,11 @@ import java.util.Collections;
*/
public abstract class ValueSource implements Serializable {
- @Deprecated
- public DocValues getValues(IndexReader reader) throws IOException {
- return getValues(null, reader);
- }
-
/**
* Gets the values for this reader and the context that was previously
* passed to createWeight()
*/
- public DocValues getValues(Map context, IndexReader reader) throws IOException {
- return getValues(reader);
- }
+ public abstract DocValues getValues(Map context, IndexReader reader) throws IOException;
public abstract boolean equals(Object o);
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java Mon Jan 3 00:30:27 2011
@@ -17,7 +17,6 @@
package org.apache.solr.search.function;
-import org.apache.lucene.search.Filter;
import org.apache.lucene.search.DocIdSet;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.Searcher;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/AbstractLuceneSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/AbstractLuceneSpellChecker.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/AbstractLuceneSpellChecker.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/AbstractLuceneSpellChecker.java Mon Jan 3 00:30:27 2011
@@ -21,7 +21,6 @@ import org.apache.lucene.search.spell.St
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/SolrSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/SolrSpellChecker.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/SolrSpellChecker.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/SolrSpellChecker.java Mon Jan 3 00:30:27 2011
@@ -17,14 +17,11 @@ package org.apache.solr.spelling;
*/
import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.Token;
-import org.apache.lucene.index.IndexReader;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrCore;
import org.apache.solr.search.SolrIndexSearcher;
import java.io.IOException;
-import java.util.Collection;
/**
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/SpellCheckCollator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/SpellCheckCollator.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/SpellCheckCollator.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/spelling/SpellCheckCollator.java Mon Jan 3 00:30:27 2011
@@ -21,16 +21,13 @@ import java.util.Arrays;
import java.util.List;
import org.apache.lucene.analysis.Token;
-import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.handler.component.QueryComponent;
import org.apache.solr.handler.component.ResponseBuilder;
import org.apache.solr.handler.component.SearchComponent;
-import org.apache.solr.handler.component.SearchHandler;
import org.apache.solr.request.LocalSolrQueryRequest;
-import org.apache.solr.request.SolrQueryRequestBase;
import org.apache.solr.response.SolrQueryResponse;
import org.mortbay.log.Log;
import org.slf4j.Logger;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/AddUpdateCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/AddUpdateCommand.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/AddUpdateCommand.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/AddUpdateCommand.java Mon Jan 3 00:30:27 2011
@@ -22,6 +22,7 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.index.Term;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.SolrInputField;
+import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
@@ -40,13 +41,14 @@ public class AddUpdateCommand extends Up
// to index.
public SolrInputDocument solrDoc;
- public boolean allowDups;
- public boolean overwritePending;
- public boolean overwriteCommitted;
+ public boolean overwrite = true;
public Term updateTerm;
public int commitWithin = -1;
+ public AddUpdateCommand(SolrQueryRequest req) {
+ super("add", req);
+ }
/** Reset state to reuse this object with a different document in the same request */
public void clear() {
@@ -105,18 +107,12 @@ public class AddUpdateCommand extends Up
return "(null)";
}
- public AddUpdateCommand() {
- super("add");
- }
-
@Override
public String toString() {
StringBuilder sb = new StringBuilder(commandName);
sb.append(':');
if (indexedId !=null) sb.append("id=").append(indexedId);
- sb.append(",allowDups=").append(allowDups);
- sb.append(",overwritePending=").append(overwritePending);
- sb.append(",overwriteCommitted=").append(overwriteCommitted);
+ if (!overwrite) sb.append(",overwrite=").append(overwrite);
return sb.toString();
}
}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/CommitUpdateCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/CommitUpdateCommand.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/CommitUpdateCommand.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/CommitUpdateCommand.java Mon Jan 3 00:30:27 2011
@@ -16,6 +16,9 @@
*/
package org.apache.solr.update;
+
+import org.apache.solr.request.SolrQueryRequest;
+
/**
* @version $Id$
*/
@@ -32,8 +35,8 @@ public class CommitUpdateCommand extends
*/
public int maxOptimizeSegments = 1;
- public CommitUpdateCommand(boolean optimize) {
- super("commit");
+ public CommitUpdateCommand(SolrQueryRequest req, boolean optimize) {
+ super("commit", req);
this.optimize=optimize;
}
public String toString() {
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/DeleteUpdateCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/DeleteUpdateCommand.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/DeleteUpdateCommand.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/DeleteUpdateCommand.java Mon Jan 3 00:30:27 2011
@@ -16,17 +16,18 @@
*/
package org.apache.solr.update;
+
+import org.apache.solr.request.SolrQueryRequest;
+
/**
* @version $Id$
*/
public class DeleteUpdateCommand extends UpdateCommand {
public String id; // external (printable) id, for delete-by-id
public String query; // query string for delete-by-query
- public boolean fromPending;
- public boolean fromCommitted;
- public DeleteUpdateCommand() {
- super("delete");
+ public DeleteUpdateCommand(SolrQueryRequest req) {
+ super("delete", req);
}
public String toString() {
@@ -34,8 +35,6 @@ public class DeleteUpdateCommand extends
sb.append(':');
if (id!=null) sb.append("id=").append(id);
else sb.append("query=`").append(query).append('`');
- sb.append(",fromPending=").append(fromPending);
- sb.append(",fromCommitted=").append(fromCommitted);
return sb.toString();
}
}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/DirectUpdateHandler2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/DirectUpdateHandler2.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/DirectUpdateHandler2.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/DirectUpdateHandler2.java Mon Jan 3 00:30:27 2011
@@ -20,9 +20,9 @@
package org.apache.solr.update;
-import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
+import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.Query;
@@ -44,6 +44,11 @@ import java.util.concurrent.atomic.Atomi
import java.io.IOException;
import java.net.URL;
+import org.apache.solr.common.params.ModifiableSolrParams;
+import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.request.LocalSolrQueryRequest;
+import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.search.QParser;
import org.apache.solr.search.QueryParsing;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.NamedList;
@@ -53,74 +58,7 @@ import org.apache.solr.core.SolrCore;
/**
* <code>DirectUpdateHandler2</code> implements an UpdateHandler where documents are added
* directly to the main Lucene index as opposed to adding to a separate smaller index.
- * For this reason, not all combinations to/from pending and committed are supported.
- * This version supports efficient removal of duplicates on a commit. It works by maintaining
- * a related count for every document being added or deleted. At commit time, for every id with a count,
- * all but the last "count" docs with that id are deleted.
- * <p>
- *
- * Supported add command parameters:
- <TABLE BORDER>
- <TR>
- <TH>allowDups</TH>
- <TH>overwritePending</TH>
- <TH>overwriteCommitted</TH>
- <TH>efficiency</TH>
- </TR>
- <TR>
- <TD>false</TD>
- <TD>false</TD>
- <TD>true</TD>
-
- <TD>fast</TD>
- </TR>
- <TR>
- <TD>true or false</TD>
- <TD>true</TD>
- <TD>true</TD>
-
- <TD>fast</TD>
- </TR>
- <TR>
- <TD>true</TD>
- <TD>false</TD>
- <TD>false</TD>
- <TD>fastest</TD>
- </TR>
-
-</TABLE>
-
- <p>Supported delete commands:
- <TABLE BORDER>
- <TR>
- <TH>command</TH>
- <TH>fromPending</TH>
- <TH>fromCommitted</TH>
- <TH>efficiency</TH>
- </TR>
- <TR>
- <TD>delete</TD>
- <TD>true</TD>
- <TD>true</TD>
- <TD>fast</TD>
- </TR>
- <TR>
- <TD>deleteByQuery</TD>
- <TD>true</TD>
- <TD>true</TD>
- <TD>very slow*</TD>
- </TR>
-</TABLE>
-
- <p>* deleteByQuery causes a commit to happen (close current index writer, open new index reader)
- before it can be processed. If deleteByQuery functionality is needed, it's best if they can
- be batched and executed together so they may share the same index reader.
-
- *
- * @version $Id$
- * @since solr 0.9
*/
-
public class DirectUpdateHandler2 extends UpdateHandler {
// stats
@@ -201,11 +139,9 @@ public class DirectUpdateHandler2 extend
addCommandsCumulative.incrementAndGet();
int rc=-1;
- // if there is no ID field, use allowDups
+ // if there is no ID field, don't overwrite
if( idField == null ) {
- cmd.allowDups = true;
- cmd.overwriteCommitted = false;
- cmd.overwritePending = false;
+ cmd.overwrite = false;
}
iwAccess.lock();
@@ -225,7 +161,7 @@ public class DirectUpdateHandler2 extend
// should account for most of the time
Term updateTerm = null;
- if (cmd.overwriteCommitted || cmd.overwritePending) {
+ if (cmd.overwrite) {
if (cmd.indexedId == null) {
cmd.indexedId = getIndexedId(cmd.doc);
}
@@ -270,17 +206,6 @@ public class DirectUpdateHandler2 extend
deleteByIdCommands.incrementAndGet();
deleteByIdCommandsCumulative.incrementAndGet();
- if (!cmd.fromPending && !cmd.fromCommitted) {
- numErrors.incrementAndGet();
- numErrorsCumulative.incrementAndGet();
- throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"meaningless command: " + cmd);
- }
- if (!cmd.fromPending || !cmd.fromCommitted) {
- numErrors.incrementAndGet();
- numErrorsCumulative.incrementAndGet();
- throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"operation not supported" + cmd);
- }
-
iwCommit.lock();
try {
openWriter();
@@ -296,44 +221,40 @@ public class DirectUpdateHandler2 extend
// why not return number of docs deleted?
// Depending on implementation, we may not be able to immediately determine the num...
- public void deleteByQuery(DeleteUpdateCommand cmd) throws IOException {
- deleteByQueryCommands.incrementAndGet();
- deleteByQueryCommandsCumulative.incrementAndGet();
-
- if (!cmd.fromPending && !cmd.fromCommitted) {
- numErrors.incrementAndGet();
- numErrorsCumulative.incrementAndGet();
- throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"meaningless command: " + cmd);
- }
- if (!cmd.fromPending || !cmd.fromCommitted) {
- numErrors.incrementAndGet();
- numErrorsCumulative.incrementAndGet();
- throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"operation not supported" + cmd);
- }
+ public void deleteByQuery(DeleteUpdateCommand cmd) throws IOException {
+ deleteByQueryCommands.incrementAndGet();
+ deleteByQueryCommandsCumulative.incrementAndGet();
boolean madeIt=false;
boolean delAll=false;
try {
- Query q = QueryParsing.parseQuery(cmd.query, schema);
- delAll = MatchAllDocsQuery.class == q.getClass();
+ Query q = null;
+ try {
+ QParser parser = QParser.getParser(cmd.query, "lucene", cmd.req);
+ q = parser.getQuery();
+ } catch (ParseException e) {
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
+ }
- iwCommit.lock();
- try {
- if (delAll) {
- deleteAll();
- } else {
- openWriter();
- writer.deleteDocuments(q);
- }
- } finally {
- iwCommit.unlock();
- }
-
- madeIt=true;
-
- if( tracker.timeUpperBound > 0 ) {
- tracker.scheduleCommitWithin( tracker.timeUpperBound );
- }
+ delAll = MatchAllDocsQuery.class == q.getClass();
+
+ iwCommit.lock();
+ try {
+ if (delAll) {
+ deleteAll();
+ } else {
+ openWriter();
+ writer.deleteDocuments(q);
+ }
+ } finally {
+ iwCommit.unlock();
+ }
+
+ madeIt=true;
+
+ if( tracker.timeUpperBound > 0 ) {
+ tracker.scheduleCommitWithin( tracker.timeUpperBound );
+ }
} finally {
if (!madeIt) {
numErrors.incrementAndGet();
@@ -594,8 +515,9 @@ public class DirectUpdateHandler2 extend
/** This is the worker part for the ScheduledFuture **/
public synchronized void run() {
long started = System.currentTimeMillis();
+ SolrQueryRequest req = new LocalSolrQueryRequest(core, new ModifiableSolrParams());
try {
- CommitUpdateCommand command = new CommitUpdateCommand( false );
+ CommitUpdateCommand command = new CommitUpdateCommand(req, false );
command.waitFlush = true;
command.waitSearcher = true;
//no need for command.maxOptimizeSegments = 1; since it is not optimizing
@@ -608,6 +530,7 @@ public class DirectUpdateHandler2 extend
}
finally {
pending = null;
+ req.close();
}
// check if docs have been submitted since the commit started
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/MergeIndexesCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/MergeIndexesCommand.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/MergeIndexesCommand.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/MergeIndexesCommand.java Mon Jan 3 00:30:27 2011
@@ -18,6 +18,7 @@
package org.apache.solr.update;
import org.apache.lucene.store.Directory;
+import org.apache.solr.request.SolrQueryRequest;
/**
* A merge indexes command encapsulated in an object.
@@ -28,12 +29,12 @@ import org.apache.lucene.store.Directory
public class MergeIndexesCommand extends UpdateCommand {
public Directory[] dirs;
- public MergeIndexesCommand() {
- this(null);
+ public MergeIndexesCommand(SolrQueryRequest req) {
+ this(null, req);
}
- public MergeIndexesCommand(Directory[] dirs) {
- super("mergeIndexes");
+ public MergeIndexesCommand(Directory[] dirs, SolrQueryRequest req) {
+ super("mergeIndexes", req);
this.dirs = dirs;
}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/RollbackUpdateCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/RollbackUpdateCommand.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/RollbackUpdateCommand.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/RollbackUpdateCommand.java Mon Jan 3 00:30:27 2011
@@ -17,14 +17,16 @@
package org.apache.solr.update;
+import org.apache.solr.request.SolrQueryRequest;
+
/**
* @version $Id$
* @since Solr 1.4
*/
public class RollbackUpdateCommand extends UpdateCommand {
- public RollbackUpdateCommand() {
- super("rollback");
+ public RollbackUpdateCommand(SolrQueryRequest req) {
+ super("rollback", req);
}
}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/UpdateCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/UpdateCommand.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/UpdateCommand.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/UpdateCommand.java Mon Jan 3 00:30:27 2011
@@ -17,15 +17,19 @@
package org.apache.solr.update;
+import org.apache.solr.request.SolrQueryRequest;
+
/** An index update command encapsulated in an object (Command pattern)
*
* @version $Id$
*/
public class UpdateCommand {
- protected String commandName;
+ protected final SolrQueryRequest req;
+ protected final String commandName;
- public UpdateCommand(String commandName) {
+ public UpdateCommand(String commandName, SolrQueryRequest req) {
+ this.req = req;
this.commandName = commandName;
}
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/processor/Lookup3Signature.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/processor/Lookup3Signature.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/processor/Lookup3Signature.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/processor/Lookup3Signature.java Mon Jan 3 00:30:27 2011
@@ -16,12 +16,6 @@ package org.apache.solr.update.processor
* limitations under the License.
*/
-import java.io.UnsupportedEncodingException;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.solr.common.util.Hash;
public class Lookup3Signature extends Signature {
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/update/processor/SignatureUpdateProcessorFactory.java Mon Jan 3 00:30:27 2011
@@ -33,11 +33,7 @@ import org.apache.solr.common.util.StrUt
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.update.AddUpdateCommand;
-import org.apache.solr.update.CommitUpdateCommand;
-import org.apache.solr.update.DeleteUpdateCommand;
-import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.core.SolrCore;
-import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.util.plugin.SolrCoreAware;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/DateMathParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/DateMathParser.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/DateMathParser.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/DateMathParser.java Mon Jan 3 00:30:27 2011
@@ -17,7 +17,6 @@
package org.apache.solr.util;
-import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrRequestInfo;
import java.util.Date;
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/SolrPluginUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/SolrPluginUtils.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/SolrPluginUtils.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/SolrPluginUtils.java Mon Jan 3 00:30:27 2011
@@ -33,6 +33,7 @@ import org.apache.solr.common.util.Named
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.core.SolrCore;
+import org.apache.solr.handler.component.HighlightComponent;
import org.apache.solr.handler.component.ResponseBuilder;
import org.apache.solr.highlight.SolrHighlighter;
import org.apache.solr.request.SolrQueryRequest;
@@ -41,9 +42,6 @@ import org.apache.solr.schema.IndexSchem
import org.apache.solr.schema.SchemaField;
import org.apache.solr.search.*;
import org.apache.solr.update.DocumentBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.IOException;
import java.util.*;
import java.util.regex.Pattern;
@@ -64,17 +62,6 @@ import java.lang.reflect.InvocationTarge
* default parameter settings.
*/
public class SolrPluginUtils {
- final static Logger log = LoggerFactory.getLogger( SolrPluginUtils.class );
-
- /**
- * Set defaults on a SolrQueryRequest.
- *
- * RequestHandlers can use this method to ensure their defaults are
- * visible to other components such as the response writer
- */
- public static void setDefaults(SolrQueryRequest req, SolrParams defaults) {
- setDefaults(req, defaults, null, null);
- }
/**
* Set default-ish params on a SolrQueryRequest.
@@ -104,13 +91,6 @@ public class SolrPluginUtils {
}
- /**
- * standard param for field list
- *
- * @deprecated Use org.apache.solr.common.params.CommonParams.FL.
- */
- @Deprecated
- public static String FL = CommonParams.FL;
/**
* SolrIndexSearch.numDocs(Query,Query) freaks out if the filtering
@@ -123,59 +103,10 @@ public class SolrPluginUtils {
}
- /**
- * Returns the param, or the default if it's empty or not specified.
- * @deprecated use SolrParam.get(String,String)
- */
- @Deprecated
- public static String getParam(SolrQueryRequest req,
- String param, String def) {
- String v = req.getParam(param);
- // Note: parameters passed but given only white-space value are
- // considered equivalent to passing nothing for that parameter.
- if (null == v || "".equals(v.trim())) {
- return def;
- }
- return v;
- }
- /**
- * Treats the param value as a Number, returns the default if nothing is
- * there or if it's not a number.
- * @deprecated use SolrParam.getFloat(String,float)
- */
- @Deprecated
- public static Number getNumberParam(SolrQueryRequest req,
- String param, Number def) {
- Number r = def;
- String v = req.getParam(param);
- if (null == v || "".equals(v.trim())) {
- return r;
- }
- try {
- r = new Float(v);
- } catch (NumberFormatException e) {
- /* :NOOP" */
- }
- return r;
- }
- /**
- * Treats parameter value as a boolean. The string 'false' is false;
- * any other non-empty string is true.
- * @deprecated use SolrParam.getBool(String,boolean)
- */
- @Deprecated
- public static boolean getBooleanParam(SolrQueryRequest req,
- String param, boolean def) {
- String v = req.getParam(param);
- if (null == v || "".equals(v.trim())) {
- return def;
- }
- return !"false".equals(v.trim());
- }
private final static Pattern splitList=Pattern.compile(",| ");
@@ -238,7 +169,8 @@ public class SolrPluginUtils {
*
* If lazy field loading is disabled, this method does nothing.
*/
- public static void optimizePreFetchDocs(DocList docs,
+ public static void optimizePreFetchDocs(ResponseBuilder rb,
+ DocList docs,
Query query,
SolrQueryRequest req,
SolrQueryResponse res) throws IOException {
@@ -248,28 +180,34 @@ public class SolrPluginUtils {
return;
}
- Set<String> fieldFilter = null;
Set<String> returnFields = res.getReturnFields();
+ Set<String> fieldFilter = returnFields;
+
if(returnFields != null) {
- // copy return fields list
- fieldFilter = new HashSet<String>(returnFields);
- // add highlight fields
- SolrHighlighter highligher = req.getCore().getHighlighter();
- if(highligher.isHighlightingEnabled(req.getParams())) {
- for(String field: highligher.getHighlightFields(query, req, null))
+
+ if (rb.doHighlights) {
+ // copy return fields list
+ fieldFilter = new HashSet<String>(returnFields);
+ // add highlight fields
+
+ SolrHighlighter highlighter = HighlightComponent.getHighlighter(req.getCore());
+ for (String field: highlighter.getHighlightFields(query, req, null))
fieldFilter.add(field);
- }
- // fetch unique key if one exists.
- SchemaField keyField = req.getSearcher().getSchema().getUniqueKeyField();
- if(null != keyField)
+
+ // fetch unique key if one exists.
+ SchemaField keyField = req.getSearcher().getSchema().getUniqueKeyField();
+ if(null != keyField)
fieldFilter.add(keyField.getName());
- }
+ }
+
+ // get documents
+ DocIterator iter = docs.iterator();
+ for (int i=0; i<docs.size(); i++) {
+ searcher.doc(iter.nextDoc(), fieldFilter);
+ }
- // get documents
- DocIterator iter = docs.iterator();
- for (int i=0; i<docs.size(); i++) {
- searcher.doc(iter.nextDoc(), fieldFilter);
}
+
}
@@ -451,23 +389,6 @@ public class SolrPluginUtils {
return out;
}
- /**
- * Generates an list of Explanations for each item in a list of docs.
- *
- * @param query The Query you want explanations in the context of
- * @param docs The Documents you want explained relative that query
- * @deprecated this returns the explanations as Strings, instead it
- * is recommeded to use getExplanations and call toString()
- * yourself, or use explanationsToNamedLists
- */
- @Deprecated
- public static NamedList getExplainList(Query query, DocList docs,
- SolrIndexSearcher searcher,
- IndexSchema schema)
- throws IOException {
-
- return explanationsToStrings(getExplanations(query,docs,searcher,schema));
- }
/**
* Executes a basic query
@@ -536,33 +457,6 @@ public class SolrPluginUtils {
}
return out;
}
- /**
- * Given a string containing functions with optional boosts, returns
- * an array of Queries representing those functions with the specified
- * boosts.
- * <p>
- * NOTE: intra-function whitespace is not allowed.
- * </p>
- * @see #parseFieldBoosts
- * @deprecated
- */
- @Deprecated
- public static List<Query> parseFuncs(IndexSchema s, String in)
- throws ParseException {
-
- Map<String,Float> ff = parseFieldBoosts(in);
- List<Query> funcs = new ArrayList<Query>(ff.keySet().size());
- for (String f : ff.keySet()) {
- Query fq = QueryParsing.parseFunction(f, s);
- Float b = ff.get(f);
- if (null != b) {
- fq.setBoost(b);
- }
- funcs.add(fq);
- }
- return funcs;
- }
-
/**
* Checks the number of optional clauses in the query, and compares it
@@ -781,14 +675,6 @@ public class SolrPluginUtils {
// don't trust that our parent class won't ever change it's default
setDefaultOperator(QueryParser.Operator.OR);
}
- public DisjunctionMaxQueryParser(IndexSchema s, String defaultField) {
- super(s,defaultField);
- // don't trust that our parent class won't ever change it's default
- setDefaultOperator(QueryParser.Operator.OR);
- }
- public DisjunctionMaxQueryParser(IndexSchema s) {
- this(s,null);
- }
/**
* Add an alias to this query parser.
@@ -885,15 +771,6 @@ public class SolrPluginUtils {
return ss;
}
- /**
- * Builds a list of Query objects that should be used to filter results
- * @see CommonParams#FQ
- * @return null if no filter queries
- */
- public static List<Query> parseFilterQueries(SolrQueryRequest req) throws ParseException {
- return parseQueryStrings(req, req.getParams().getParams(CommonParams.FQ));
- }
-
/** Turns an array of query strings into a List of Query objects.
*
* @return null if no queries are generated
@@ -984,27 +861,6 @@ public class SolrPluginUtils {
}
-
- /**
- * Given a SolrQueryResponse replace the DocList if it is in the result.
- * Otherwise add it to the response
- *
- * @since solr 1.4
- */
- public static void addOrReplaceResults(SolrQueryResponse rsp, SolrDocumentList docs)
- {
- NamedList vals = rsp.getValues();
- int idx = vals.indexOf( "response", 0 );
- if( idx >= 0 ) {
- log.debug("Replacing DocList with SolrDocumentList " + docs.size());
- vals.setVal( idx, docs );
- }
- else {
- log.debug("Adding SolrDocumentList response" + docs.size());
- vals.add( "response", docs );
- }
- }
-
public static void invokeSetters(Object bean, NamedList initArgs) {
if (initArgs == null) return;
Class clazz = bean.getClass();
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/TestHarness.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/TestHarness.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/TestHarness.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/TestHarness.java Mon Jan 3 00:30:27 2011
@@ -17,6 +17,7 @@
package org.apache.solr.util;
+import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.XML;
@@ -25,20 +26,22 @@ import org.apache.solr.core.SolrCore;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.CoreDescriptor;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.handler.JsonUpdateRequestHandler;
import org.apache.solr.handler.XmlUpdateRequestHandler;
import org.apache.solr.request.LocalSolrQueryRequest;
import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.request.SolrRequestHandler;
import org.apache.solr.request.SolrRequestInfo;
import org.apache.solr.response.QueryResponseWriter;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.servlet.DirectSolrConnection;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import org.apache.solr.common.util.NamedList.NamedListEntry;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
@@ -49,10 +52,7 @@ import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
@@ -206,20 +206,25 @@ public class TestHarness {
/**
* Processes an "update" (add, commit or optimize) and
* returns the response as a String.
- *
- * @deprecated The better approach is to instantiate an Updatehandler directly
*
* @param xml The XML of the update
* @return The XML response to the update
*/
- @Deprecated
public String update(String xml) {
-
- StringReader req = new StringReader(xml);
- StringWriter writer = new StringWriter(32000);
-
- updater.doLegacyUpdate(req, writer);
- return writer.toString();
+ DirectSolrConnection connection = new DirectSolrConnection(core);
+ SolrRequestHandler handler = core.getRequestHandler("/update");
+ // prefer the handler mapped to /update, but use our generic backup handler
+ // if that lookup fails
+ if (handler == null) {
+ handler = updater;
+ }
+ try {
+ return connection.request(handler, null, xml);
+ } catch (SolrException e) {
+ throw (SolrException)e;
+ } catch (Exception e) {
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
+ }
}
@@ -244,7 +249,12 @@ public class TestHarness {
* @return null if successful, otherwise the XML response to the update
*/
public String validateErrorUpdate(String xml) throws SAXException {
- return checkUpdateStatus(xml, "1");
+ try {
+ return checkUpdateStatus(xml, "1");
+ } catch (SolrException e) {
+ // return ((SolrException)e).getMessage();
+ return null; // success
+ }
}
/**
@@ -258,7 +268,7 @@ public class TestHarness {
public String checkUpdateStatus(String xml, String code) throws SAXException {
try {
String res = update(xml);
- String valid = validateXPath(res, "//result[@status="+code+"]" );
+ String valid = validateXPath(res, "//int[@name='status']="+code );
return (null == valid) ? null : res;
} catch (XPathExpressionException e) {
throw new RuntimeException
@@ -266,27 +276,6 @@ public class TestHarness {
}
}
- /**
- * Validates that an add of a single document results in success.
- *
- * @param fieldsAndValues Odds are field names, Evens are values
- * @return null if successful, otherwise the XML response to the update
- * @see #appendSimpleDoc
- */
- public String validateAddDoc(String... fieldsAndValues)
- throws XPathExpressionException, SAXException, IOException {
-
- StringBuilder buf = new StringBuilder();
- buf.append("<add>");
- appendSimpleDoc(buf, fieldsAndValues);
- buf.append("</add>");
-
- String res = update(buf.toString());
- String valid = validateXPath(res, "//result[@status=0]" );
- return (null == valid) ? null : res;
- }
-
-
/**
* Validates a "query" response against an array of XPath test strings
@@ -414,29 +403,6 @@ public class TestHarness {
}
/**
- * A helper that adds an xml <doc> containing all of the
- * fields and values specified (odds are fields, evens are values)
- * to a StringBuilder
- */
- public void appendSimpleDoc(StringBuilder buf, String... fieldsAndValues)
- throws IOException {
-
- buf.append(makeSimpleDoc(fieldsAndValues));
- }
-
- /**
- * A helper that adds an xml <doc> containing all of the
- * fields and values specified (odds are fields, evens are values)
- * to a StringBuffer.
- * @deprecated see {@link #appendSimpleDoc(StringBuilder, String...)}
- */
- @Deprecated
- public void appendSimpleDoc(StringBuffer buf, String... fieldsAndValues)
- throws IOException {
-
- buf.append(makeSimpleDoc(fieldsAndValues));
- }
- /**
* A helper that creates an xml <doc> containing all of the
* fields and values specified
*
Modified: lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java Mon Jan 3 00:30:27 2011
@@ -27,7 +27,6 @@ import org.apache.solr.common.SolrExcept
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.util.DOMUtil;
import org.apache.solr.core.SolrConfig;
-import org.apache.solr.core.SolrResourceLoader;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
Modified: lucene/dev/branches/realtime_search/solr/src/maven/solr-core-pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/maven/solr-core-pom.xml.template?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/maven/solr-core-pom.xml.template (original)
+++ lucene/dev/branches/realtime_search/solr/src/maven/solr-core-pom.xml.template Mon Jan 3 00:30:27 2011
@@ -91,6 +91,13 @@
<artifactId>lucene-spellchecker</artifactId>
<version>@version@</version>
</dependency>
+
+ <!-- Apache Zookeeper -->
+ <dependency>
+ <groupId>org.apache.zookeeper</groupId>
+ <artifactId>zookeeper</artifactId>
+ <version>3.3.1</version>
+ </dependency>
<!-- Apache Commons -->
<dependency>
Modified: lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java Mon Jan 3 00:30:27 2011
@@ -18,7 +18,6 @@ package org.apache.solr.client.solrj.imp
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
-import org.apache.commons.httpclient.DefaultMethodRetryHandler;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.solr.client.solrj.*;
@@ -32,7 +31,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.locks.ReentrantLock;
import java.util.*;
/**
Modified: lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/ContentStreamUpdateRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/ContentStreamUpdateRequest.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/ContentStreamUpdateRequest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/ContentStreamUpdateRequest.java Mon Jan 3 00:30:27 2011
@@ -17,12 +17,6 @@ package org.apache.solr.client.solrj.req
*/
-import org.apache.solr.client.solrj.SolrRequest;
-import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.response.UpdateResponse;
-import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.ContentStream;
import org.apache.solr.common.util.ContentStreamBase;
Modified: lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/FieldAnalysisRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/FieldAnalysisRequest.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/FieldAnalysisRequest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/FieldAnalysisRequest.java Mon Jan 3 00:30:27 2011
@@ -96,8 +96,8 @@ public class FieldAnalysisRequest extend
*/
@Override
public FieldAnalysisResponse process(SolrServer server) throws SolrServerException, IOException {
- if (fieldTypes == null || fieldNames == null) {
- throw new IllegalStateException("A list one field type or field name need to be specified");
+ if (fieldTypes == null && fieldNames == null) {
+ throw new IllegalStateException("At least one field type or field name need to be specified");
}
if (fieldValue == null) {
throw new IllegalStateException("The field value must be set");
Modified: lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/UpdateRequest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/UpdateRequest.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/UpdateRequest.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/request/UpdateRequest.java Mon Jan 3 00:30:27 2011
@@ -25,10 +25,6 @@ import java.util.Collection;
import java.util.List;
import java.util.Iterator;
-import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.SolrRequest;
-import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.client.solrj.util.ClientUtils;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.ModifiableSolrParams;
Modified: lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/response/PivotField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/response/PivotField.java?rev=1054507&r1=1054506&r2=1054507&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/response/PivotField.java (original)
+++ lucene/dev/branches/realtime_search/solr/src/solrj/org/apache/solr/client/solrj/response/PivotField.java Mon Jan 3 00:30:27 2011
@@ -18,7 +18,6 @@
package org.apache.solr.client.solrj.response;
import java.io.PrintStream;
-import java.io.PrintWriter;
import java.io.Serializable;
import java.util.List;