org.apache.solr.search.DisMaxQParserPlugin Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of solr-core Show documentation
Show all versions of solr-core Show documentation
Apache Solr (module: core)
/*
* 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.request.SolrQueryRequest;
/**
* Create a dismax query from the input value.
* localParams are checked before global request params.
* Example: {!dismax qf='myfield mytitle^2'}foo
creates a dismax query across across
* myfield and mytitle, with a higher weight on mytitle.
*
* 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.
*
*
All of the following options may be configured for this plugin in the solrconfig as defaults,
* and may be overridden as request parameters
*
*
* - 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
q.alt=*:*
to denote that all documents should be returned when no query is
* specified)
* - tie - (Tie breaker) float value to use as tiebreaker in DisjunctionMaxQueries (should be
* something much less than 1)
*
- qf - (Query Fields) fields and boosts to use when building DisjunctionMaxQueries from the
* users query. Format is: "
fieldA^1.0 fieldB^2.2
". This param can be specified
* multiple times, and the fields are additive.
* - mm - (Minimum Match) this supports a wide variety of complex expressions. read {@link
* org.apache.solr.util.SolrPluginUtils#setMinShouldMatch SolrPluginUtils.setMinShouldMatch}
* and mm expression
* format for details.
*
- 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: "
fieldA^1.0 fieldB^2.2
".
* This param can be specified multiple times, and the fields are additive.
* - ps - (Phrase Slop) amount of slop on phrase queries built for pf fields.
*
- qs - (Query Slop) amount of slop on phrase queries explicitly specified in the "q" for qf
* fields.
*
- 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
bq
paramter is specified.
* Hence you can disable it by specifying an additional, blank, bq
parameter.
* - bf - (Boost Functions) functions (with optional boosts) that will be included in the users
* query to influence the score. Format is: "
funcA(arg1,arg2)^1.2
* funcB(arg3,arg4)^2.2
". NOTE: Whitespace is not allowed in the function
* arguments. This param can be specified multiple times, and the functions are additive.
* - 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.
*
*
* The following options are only available as request params...
*
*
* - q - (Query) the raw unparsed, unescaped, query from the user.
*
- sort - (Order By) list of fields and direction to sort on.
*
*/
public class DisMaxQParserPlugin extends QParserPlugin {
public static final String NAME = "dismax";
@Override
public QParser createParser(
String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
return new DisMaxQParser(qstr, localParams, params, req);
}
}