SOLR-1776: DismaxQParser and ExtendedDismaxQParser now use the schema.xml defaultSearchField as the default value for the qf param

git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@915646 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Chris M. Hostetter 2010-02-24 03:00:45 +00:00
parent d16fe2ecca
commit bbd02d1cf1
6 changed files with 30 additions and 2 deletions

View File

@ -249,6 +249,10 @@ Other Changes
* SOLR-1695: Improved error messages when adding a document that does not
contain exactly one value for the uniqueKey field (hossman)
* SOLR-1776: DismaxQParser and ExtendedDismaxQParser now use the schema.xml
"defaultSearchField" as the default value for the "qf" param instead of failing
with an error when "qf" is not specified. (hossman)
Build
----------------------

View File

@ -65,6 +65,9 @@ public class DisMaxQParser extends QParser {
public Query parse() throws ParseException {
SolrParams solrParams = localParams == null ? params : new DefaultSolrParams(localParams, params);
queryFields = SolrPluginUtils.parseFieldBoosts(solrParams.getParams(DisMaxParams.QF));
if (0 == queryFields.size()) {
queryFields.put(req.getSchema().getDefaultSearchFieldName(), 1.0f);
}
/* the main query we will execute. we disable the coord because
* this query is an artificial construct

View File

@ -104,6 +104,10 @@ class ExtendedDismaxQParser extends QParser {
SolrParams solrParams = localParams == null ? params : new DefaultSolrParams(localParams, params);
queryFields = U.parseFieldBoosts(solrParams.getParams(DMP.QF));
if (0 == queryFields.size()) {
queryFields.put(req.getSchema().getDefaultSearchFieldName(), 1.0f);
}
// Boosted phrase of the full query string
Map<String,Float> phraseFields =
U.parseFieldBoosts(solrParams.getParams(DMP.PF));

View File

@ -206,6 +206,15 @@ public class DisMaxRequestHandlerTest extends AbstractSolrTestCase {
doTestSomeStuff("dismaxOldStyleDefaults");
}
public void testSimplestParams() throws Exception {
populate();
assertQ("match w/o only q param",
req("qt", "dismaxNoDefaults",
"q","guide")
,"//*[@numFound='2']"
);
}
}

View File

@ -97,6 +97,12 @@ public class TestExtendedDismaxParser extends AbstractSolrTestCase {
"q","100"), oner
);
assertQ("qf defaults to defaultSearchField"
, req( "defType", "edismax"
,"q","op")
, twor
);
assertQ(req("defType", "edismax", "qf", "name title subject text",
"q","op"), twor
);

View File

@ -293,6 +293,8 @@
<int name="ps">100</int>
</lst>
</requestHandler>
<requestHandler name="dismaxNoDefaults" class="solr.DisMaxRequestHandler" >
</requestHandler>
<requestHandler name="old" class="solr.tst.OldRequestHandler" >
<int name="myparam">1000</int>
<float name="ratio">1.4142135</float>