All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.solr.handler.DisMaxRequestHandler Maven / Gradle / Ivy

The newest version!
/**
 * 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.handler;

import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.search.DisMaxQParserPlugin;
import org.apache.solr.search.QueryParsing;
import org.apache.solr.util.SolrPluginUtils;

import java.net.MalformedURLException;
import java.net.URL;

/**
 * 

* 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 overriden 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 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. *
  • *
* *
 * :TODO: document facet param support
 *
 * 
* @deprecated use StandardRequestHandler with a "defType=dismax" param */ @Deprecated public class DisMaxRequestHandler extends StandardRequestHandler { @Override public void init(NamedList args) { super.init( args ); NamedList def = null; // redo "defaults" Object o = args.get("defaults"); if (o != null && o instanceof NamedList) { def = (NamedList)o; } else { // no explict defaults list, use all args implicitly // indexOf so " is valid indicator of no defaults def = args; } // Make the default query type "dismax" if not specified if (def.get(QueryParsing.DEFTYPE) == null) { def = def.clone(); def.add(QueryParsing.DEFTYPE, DisMaxQParserPlugin.NAME); defaults = SolrParams.toSolrParams( def ); } } //////////////////////// SolrInfoMBeans methods ////////////////////// @Override public String getDescription() { return "DisjunctionMax Request Handler: Does relevancy based queries " + "across a variety of fields using configured boosts"; } @Override public String getVersion() { return "$Revision: 630746 $"; } @Override public String getSourceId() { return "$Id: DisMaxRequestHandler.java 630746 2008-02-25 07:02:09Z hossman $"; } @Override public String getSource() { return "$URL: https://svn.apache.org/repos/asf/lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/DisMaxRequestHandler.java $"; } @Override public URL[] getDocs() { try { return new URL[] { new URL("http://wiki.apache.org/solr/DisMaxRequestHandler") }; } catch( MalformedURLException ex ) { return null; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy