You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2011/05/14 01:18:15 UTC
svn commit: r1102922 - in /lucene/dev/branches/branch_3x: ./ lucene/
lucene/backwards/ solr/ solr/src/java/org/apache/solr/search/
solr/src/test/org/apache/solr/search/
Author: hossman
Date: Fri May 13 23:18:15 2011
New Revision: 1102922
URL: http://svn.apache.org/viewvc?rev=1102922&view=rev
Log:
SOLR-2113: backport r995607 from trunk
Added:
lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/TermQParserPlugin.java
- copied, changed from r995607, lucene/dev/trunk/solr/src/java/org/apache/solr/search/TermQParserPlugin.java
Modified:
lucene/dev/branches/branch_3x/ (props changed)
lucene/dev/branches/branch_3x/lucene/ (props changed)
lucene/dev/branches/branch_3x/lucene/backwards/ (props changed)
lucene/dev/branches/branch_3x/solr/ (props changed)
lucene/dev/branches/branch_3x/solr/CHANGES.txt
lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/QParserPlugin.java
lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/RawQParserPlugin.java
lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/TestQueryTypes.java
Modified: lucene/dev/branches/branch_3x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/CHANGES.txt?rev=1102922&r1=1102921&r2=1102922&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_3x/solr/CHANGES.txt Fri May 13 23:18:15 2011
@@ -51,6 +51,11 @@ New Features
Example: [{"id":"doc1"},{"id":"doc2"}]
(yonik)
+* SOLR-2113: Add TermQParserPlugin, registered as "term". This is useful
+ when generating filter queries from terms returned from field faceting or
+ the terms component. Example: fq={!term f=weight}1.5 (hossman, yonik)
+
+
Optimizations
----------------------
Modified: lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/QParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/QParserPlugin.java?rev=1102922&r1=1102921&r2=1102922&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/QParserPlugin.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/QParserPlugin.java Fri May 13 23:18:15 2011
@@ -35,6 +35,7 @@ public abstract class QParserPlugin impl
ExtendedDismaxQParserPlugin.NAME, ExtendedDismaxQParserPlugin.class,
FieldQParserPlugin.NAME, FieldQParserPlugin.class,
RawQParserPlugin.NAME, RawQParserPlugin.class,
+ TermQParserPlugin.NAME, TermQParserPlugin.class,
NestedQParserPlugin.NAME, NestedQParserPlugin.class,
FunctionRangeQParserPlugin.NAME, FunctionRangeQParserPlugin.class,
SpatialFilterQParserPlugin.NAME, SpatialFilterQParserPlugin.class,
Modified: lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/RawQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/RawQParserPlugin.java?rev=1102922&r1=1102921&r2=1102922&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/RawQParserPlugin.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/RawQParserPlugin.java Fri May 13 23:18:15 2011
@@ -26,6 +26,11 @@ import org.apache.solr.request.SolrQuery
/**
* Create a term query from the input value without any text analysis or transformation whatsoever.
+ * This is useful in debugging, or when raw terms are returned from the terms component (this is not the default).
+ *
+ * <br>For easy filter construction to drill down in faceting, the {@link TermQParserPlugin} is recommended.
+ * <br>For full analysis on all fields, including text fields, see the {@link FieldQParserPlugin}.
+ *
* <br>Other parameters: <code>f</code>, the field
* <br>Example: <code>{!raw f=myfield}Foo Bar</code> creates <code>TermQuery(Term("myfield","Foo Bar"))</code>
*/
Copied: lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/TermQParserPlugin.java (from r995607, lucene/dev/trunk/solr/src/java/org/apache/solr/search/TermQParserPlugin.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/TermQParserPlugin.java?p2=lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/TermQParserPlugin.java&p1=lucene/dev/trunk/solr/src/java/org/apache/solr/search/TermQParserPlugin.java&r1=995607&r2=1102922&rev=1102922&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/TermQParserPlugin.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/java/org/apache/solr/search/TermQParserPlugin.java Fri May 13 23:18:15 2011
@@ -20,7 +20,6 @@ import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.util.BytesRef;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.SolrQueryRequest;
@@ -53,13 +52,9 @@ public class TermQParserPlugin extends Q
String fname = localParams.get(QueryParsing.F);
FieldType ft = req.getSchema().getFieldTypeNoEx(fname);
String val = localParams.get(QueryParsing.V);
- BytesRef term = new BytesRef();
- if (ft != null) {
- ft.readableToIndexed(val, term);
- } else {
- term.copy(val);
- }
- return new TermQuery(new Term(fname, term));
+
+ return new TermQuery(new Term(fname,
+ null == ft ? val : ft.readableToIndexed(val)));
}
};
}
Modified: lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/TestQueryTypes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/TestQueryTypes.java?rev=1102922&r1=1102921&r2=1102922&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/TestQueryTypes.java (original)
+++ lucene/dev/branches/branch_3x/solr/src/test/org/apache/solr/search/TestQueryTypes.java Fri May 13 23:18:15 2011
@@ -134,6 +134,8 @@ public class TestQueryTypes extends Abst
req("q","{!raw f=v_t}hello")
,"//result[@numFound='2']"
);
+
+ // no analysis is done, so these should match nothing
assertQ("test raw query",
req("q","{!raw f=v_t}Hello")
,"//result[@numFound='0']"
@@ -143,6 +145,23 @@ public class TestQueryTypes extends Abst
,"//result[@numFound='0']"
);
+ // test "term" qparser, which should only do readableToIndexed
+ assertQ(
+ req("q","{!term f=v_f}1.5")
+ ,"//result[@numFound='1']"
+ );
+
+ // text fields are *not* analyzed since they may not be idempotent
+ assertQ(
+ req("q","{!term f=v_t}Hello")
+ ,"//result[@numFound='0']"
+ );
+ assertQ(
+ req("q","{!term f=v_t}hello")
+ ,"//result[@numFound='2']"
+ );
+
+
//
// test escapes in quoted strings
//