From 8609f34c233e2d41cc5567f8a4a2015ccc7dc352 Mon Sep 17 00:00:00 2001 From: Yonik Seeley Date: Tue, 5 Feb 2008 03:46:33 +0000 Subject: [PATCH] add test for custom query parser from solrconfig.xml git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@618528 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/solr/search/FooQParserPlugin.java | 46 +++++++++++++++++++ .../apache/solr/search/TestQueryTypes.java | 9 +++- src/test/test-files/solr/conf/solrconfig.xml | 4 ++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100755 src/test/org/apache/solr/search/FooQParserPlugin.java diff --git a/src/test/org/apache/solr/search/FooQParserPlugin.java b/src/test/org/apache/solr/search/FooQParserPlugin.java new file mode 100755 index 00000000000..fc2c3a622ce --- /dev/null +++ b/src/test/org/apache/solr/search/FooQParserPlugin.java @@ -0,0 +1,46 @@ +/** + * 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.solr.common.params.SolrParams; +import org.apache.solr.common.util.NamedList; +import org.apache.solr.request.SolrQueryRequest; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.TermQuery; +import org.apache.lucene.queryParser.ParseException; +import org.apache.lucene.index.Term; + + +public class FooQParserPlugin extends QParserPlugin { + public QParser createParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) { + return new FooQParser(qstr, localParams, params, req); + } + + public void init(NamedList args) { + } +} + +class FooQParser extends QParser { + public FooQParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) { + super(qstr, localParams, params, req); + } + + protected Query parse() throws ParseException { + return new TermQuery(new Term(localParams.get(QueryParsing.F), localParams.get(QueryParsing.V))); + } +} diff --git a/src/test/org/apache/solr/search/TestQueryTypes.java b/src/test/org/apache/solr/search/TestQueryTypes.java index e0f1464a823..8203ca96163 100755 --- a/src/test/org/apache/solr/search/TestQueryTypes.java +++ b/src/test/org/apache/solr/search/TestQueryTypes.java @@ -66,6 +66,13 @@ public class TestQueryTypes extends AbstractSolrTestCase { ,"//result[@numFound='0']" ); + + assertQ("test custom plugin query", + req("q","hello") + ,"//result[@numFound='2']" + ); + + assertQ("test single term field query on text type", req("q","HELLO") ,"//result[@numFound='2']" @@ -176,4 +183,4 @@ public class TestQueryTypes extends AbstractSolrTestCase { ); } -} +} \ No newline at end of file diff --git a/src/test/test-files/solr/conf/solrconfig.xml b/src/test/test-files/solr/conf/solrconfig.xml index 43fed2f8e80..c4867416ee4 100644 --- a/src/test/test-files/solr/conf/solrconfig.xml +++ b/src/test/test-files/solr/conf/solrconfig.xml @@ -320,4 +320,8 @@ prefix-${solr.test.sys.prop2}-suffix + + + +