You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ry...@apache.org on 2007/11/28 18:41:40 UTC
svn commit: r599071 - in /lucene/solr/trunk/src/java/org/apache/solr:
handler/component/ search/ tst/ util/
Author: ryan
Date: Wed Nov 28 09:41:37 2007
New Revision: 599071
URL: http://svn.apache.org/viewvc?rev=599071&view=rev
Log:
SOLR-417 -- moving SortSpec to a top level class.
Added:
lucene/solr/trunk/src/java/org/apache/solr/search/SortSpec.java (with props)
Modified:
lucene/solr/trunk/src/java/org/apache/solr/handler/component/ResponseBuilder.java
lucene/solr/trunk/src/java/org/apache/solr/search/LuceneQParserPlugin.java
lucene/solr/trunk/src/java/org/apache/solr/search/QParser.java
lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java
lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java
lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java
lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java
Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/component/ResponseBuilder.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/component/ResponseBuilder.java?rev=599071&r1=599070&r2=599071&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/component/ResponseBuilder.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/component/ResponseBuilder.java Wed Nov 28 09:41:37 2007
@@ -22,7 +22,7 @@
import org.apache.solr.common.util.RTimer;
import org.apache.solr.search.DocListAndSet;
import org.apache.solr.search.QParser;
-import org.apache.solr.search.QueryParsing;
+import org.apache.solr.search.SortSpec;
import java.util.List;
@@ -43,7 +43,7 @@
private String queryString = null;
private Query query = null;
private List<Query> filters = null;
- private QueryParsing.SortSpec sortSpec = null;
+ private SortSpec sortSpec = null;
private DocListAndSet results = null;
private NamedList<Object> debugInfo = null;
@@ -141,11 +141,11 @@
this.results = results;
}
- public QueryParsing.SortSpec getSortSpec() {
+ public SortSpec getSortSpec() {
return sortSpec;
}
- public void setSortSpec(QueryParsing.SortSpec sort) {
+ public void setSortSpec(SortSpec sort) {
this.sortSpec = sort;
}
Modified: lucene/solr/trunk/src/java/org/apache/solr/search/LuceneQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/LuceneQParserPlugin.java?rev=599071&r1=599070&r2=599071&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/LuceneQParserPlugin.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/LuceneQParserPlugin.java Wed Nov 28 09:41:37 2007
@@ -19,6 +19,7 @@
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;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.SolrParams;
@@ -119,12 +120,12 @@
}
@Override
- public QueryParsing.SortSpec getSort(boolean useGlobal) throws ParseException {
- QueryParsing.SortSpec sort = super.getSort(useGlobal);
+ public SortSpec getSort(boolean useGlobal) throws ParseException {
+ SortSpec sort = super.getSort(useGlobal);
if (sortStr != null && sortStr.length()>0 && sort.getSort()==null) {
- QueryParsing.SortSpec oldSort = QueryParsing.parseSort(sortStr, getReq().getSchema());
+ Sort oldSort = QueryParsing.parseSort(sortStr, getReq().getSchema());
if( oldSort != null ) {
- sort.sort = oldSort.sort;
+ sort.sort = oldSort;
}
}
return sort;
Modified: lucene/solr/trunk/src/java/org/apache/solr/search/QParser.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/QParser.java?rev=599071&r1=599070&r2=599071&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/QParser.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/QParser.java Wed Nov 28 09:41:37 2007
@@ -18,6 +18,7 @@
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.Sort;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
@@ -120,7 +121,7 @@
* @param useGlobalParams look up sort, start, rows in global params if not in local params
* @return the sort specification
*/
- public QueryParsing.SortSpec getSort(boolean useGlobalParams) throws ParseException {
+ public SortSpec getSort(boolean useGlobalParams) throws ParseException {
getQuery(); // ensure query is parsed first
String sortStr = null;
@@ -153,20 +154,11 @@
int start = startS != null ? Integer.parseInt(startS) : 0;
int rows = rowsS != null ? Integer.parseInt(rowsS) : 10;
- QueryParsing.SortSpec sort = null;
- if (sortStr != null) {
- // may return null if 'score desc'
+ Sort sort = null;
+ if( sortStr != null ) {
sort = QueryParsing.parseSort(sortStr, req.getSchema());
}
-
- if( sort == null ) {
- sort = new QueryParsing.SortSpec(null, start, rows);
- }
- else {
- sort.offset = start;
- sort.num = rows;
- }
- return sort;
+ return new SortSpec( sort, start, rows );
}
public String[] getDefaultHighlightFields() {
Modified: lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java?rev=599071&r1=599070&r2=599071&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java Wed Nov 28 09:41:37 2007
@@ -202,52 +202,6 @@
}
-
-
- /***
- * SortSpec encapsulates a Lucene Sort and a count of the number of documents
- * to return.
- */
- public static class SortSpec {
- Sort sort;
- int num;
- int offset;
-
- SortSpec(Sort sort, int num) {
- this(sort,0,num);
- }
-
- SortSpec(Sort sort, int offset, int num) {
- this.sort=sort;
- this.offset=offset;
- this.num=num;
- }
-
- /**
- * Gets the Lucene Sort object, or null for the default sort
- * by score descending.
- */
- public Sort getSort() { return sort; }
-
- /**
- * Offset into the list of results.
- */
- public int getOffset() { return offset; }
-
- /**
- * Gets the number of documens to return after sorting.
- *
- * @return number of docs to return, or -1 for no cut off (just sort)
- */
- public int getCount() { return num; }
-
- public String toString() {
- return "start="+offset+"&rows="+num
- + (sort==null ? "" : "sort="+sort);
- }
- }
-
-
private static Pattern sortSep = Pattern.compile(",");
/**
@@ -271,7 +225,7 @@
* </pre>
*
*/
- public static SortSpec parseSort(String sortSpec, IndexSchema schema) {
+ public static Sort parseSort(String sortSpec, IndexSchema schema) {
if (sortSpec==null || sortSpec.length()==0) return null;
String[] parts = sortSep.split(sortSpec.trim());
@@ -285,24 +239,24 @@
int idx = part.indexOf( ' ' );
if( idx > 0 ) {
String order = part.substring( idx+1 ).trim();
- if( "desc".equals( order ) || "top".equals(order) ) {
- top = true;
- }
- else if ("asc".equals(order) || "bottom".equals(order)) {
- top = false;
- }
- else {
- throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "Unknown sort order: "+order);
- }
- part = part.substring( 0, idx ).trim();
+ if( "desc".equals( order ) || "top".equals(order) ) {
+ top = true;
+ }
+ else if ("asc".equals(order) || "bottom".equals(order)) {
+ top = false;
+ }
+ else {
+ throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "Unknown sort order: "+order);
+ }
+ part = part.substring( 0, idx ).trim();
}
else {
- throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "Missing sort order." );
+ throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "Missing sort order." );
}
if( "score".equals(part) ) {
if (top) {
- // If thre is only one thing in the list, just do the regular thing...
+ // If there is only one thing in the list, just do the regular thing...
if( parts.length == 1 ) {
return null; // do normal scoring...
}
@@ -327,9 +281,7 @@
lst[i] = f.getType().getSortField(f,top);
}
}
- // For more info on the 'num' field, -1,
- // see: https://issues.apache.org/jira/browse/SOLR-99
- return new SortSpec( new Sort(lst),-1);
+ return new Sort(lst);
}
Added: lucene/solr/trunk/src/java/org/apache/solr/search/SortSpec.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/SortSpec.java?rev=599071&view=auto
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/SortSpec.java (added)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/SortSpec.java Wed Nov 28 09:41:37 2007
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.search;
+
+import org.apache.lucene.search.Sort;
+
+/***
+ * SortSpec encapsulates a Lucene Sort and a count of the number of documents
+ * to return.
+ */
+public class SortSpec
+{
+ Sort sort;
+ int num;
+ int offset;
+
+ public SortSpec(Sort sort, int num) {
+ this(sort,0,num);
+ }
+
+ public SortSpec(Sort sort, int offset, int num) {
+ this.sort=sort;
+ this.offset=offset;
+ this.num=num;
+ }
+
+ /**
+ * Gets the Lucene Sort object, or null for the default sort
+ * by score descending.
+ */
+ public Sort getSort() { return sort; }
+
+ /**
+ * Offset into the list of results.
+ */
+ public int getOffset() { return offset; }
+
+ /**
+ * Gets the number of documents to return after sorting.
+ *
+ * @return number of docs to return, or -1 for no cut off (just sort)
+ */
+ public int getCount() { return num; }
+
+ @Override
+ public String toString() {
+ return "start="+offset+ "&rows="+num + (sort==null ? "" : "&sort="+sort);
+ }
+}
Propchange: lucene/solr/trunk/src/java/org/apache/solr/search/SortSpec.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lucene/solr/trunk/src/java/org/apache/solr/search/SortSpec.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java?rev=599071&r1=599070&r2=599071&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/tst/OldRequestHandler.java Wed Nov 28 09:41:37 2007
@@ -62,12 +62,7 @@
// we can use the Lucene sort ability.
Sort sort = null;
if (commands.size() >= 2) {
- QueryParsing.SortSpec sortSpec = QueryParsing.parseSort(commands.get(1), req.getSchema());
- if (sortSpec != null) {
- sort = sortSpec.getSort();
- // ignore the count for now... it's currently only controlled by start & limit on req
- // count = sortSpec.getCount();
- }
+ sort = QueryParsing.parseSort(commands.get(1), req.getSchema());
}
Hits hits=null;
Modified: lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java?rev=599071&r1=599070&r2=599071&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/tst/TestRequestHandler.java Wed Nov 28 09:41:37 2007
@@ -103,12 +103,7 @@
// we can use the Lucene sort ability.
Sort sort = null;
if (commands.size() >= 2) {
- QueryParsing.SortSpec sortSpec = QueryParsing.parseSort(commands.get(1), req.getSchema());
- if (sortSpec != null) {
- sort = sortSpec.getSort();
- // ignore the count for now... it's currently only controlled by start & limit on req
- // count = sortSpec.getCount();
- }
+ sort = QueryParsing.parseSort(commands.get(1), req.getSchema());
}
SolrIndexSearcher searcher = req.getSearcher();
Modified: lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java?rev=599071&r1=599070&r2=599071&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/util/SolrPluginUtils.java Wed Nov 28 09:41:37 2007
@@ -458,13 +458,7 @@
// we can use the Lucene sort ability.
Sort sort = null;
if (commands.size() >= 2) {
- QueryParsing.SortSpec sortSpec = QueryParsing.parseSort(commands.get(1), schema);
- if (sortSpec != null) {
- sort = sortSpec.getSort();
- if (sortSpec.getCount() >= 0) {
- limit = sortSpec.getCount();
- }
- }
+ sort = QueryParsing.parseSort(commands.get(1), schema);
}
DocList results = searcher.getDocList(query,(DocSet)null, sort, start, limit);
@@ -793,7 +787,7 @@
}
SolrException sortE = null;
- QueryParsing.SortSpec ss = null;
+ Sort ss = null;
try {
ss = QueryParsing.parseSort(sort, req.getSchema());
} catch (SolrException e) {
@@ -808,7 +802,7 @@
return null;
}
- return ss.getSort();
+ return ss;
}
/**