Package org.apache.lucene.queries.function

# Class FunctionScoreQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.queries.function.FunctionScoreQuery

public final class FunctionScoreQuery extends Query
A query that wraps another query, and uses a DoubleValuesSource to replace or modify the wrapped query's score

If the DoubleValuesSource doesn't return a value for a particular document, then that document will be given a score of 0.

## Constructor Summary

Constructors
Constructor
Description
`FunctionScoreQuery(Query in, DoubleValuesSource source)`
Create a new FunctionScoreQuery

## Method Summary

Modifier and Type
Method
Description
`static FunctionScoreQuery`
`boostByQuery(Query in, Query boostMatch, float boostValue)`
Returns a FunctionScoreQuery where the scores of a wrapped query are multiplied by a boost factor if the document being scored also matches a separate boosting query.
`static FunctionScoreQuery`
`boostByValue(Query in, DoubleValuesSource boost)`
Returns a FunctionScoreQuery where the scores of a wrapped query are multiplied by the value of a DoubleValuesSource.
`Weight`
`createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost)`
`boolean`
`equals(Object o)`
`DoubleValuesSource`
`getSource()`
`Query`
`getWrappedQuery()`
`int`
`hashCode()`
`Query`
`rewrite(IndexSearcher indexSearcher)`
`String`
`toString(String field)`
`void`
`visit(QueryVisitor visitor)`

### Methods inherited from class org.apache.lucene.search.Query

`classHash, sameClassAs, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### FunctionScoreQuery

public FunctionScoreQuery(Query in, DoubleValuesSource source)
Create a new FunctionScoreQuery

Parameters:
  `in` - the query to wrap
  `source` - a source of scores

## Method Details

### getWrappedQuery

public Query getWrappedQuery()

Returns:
  the wrapped Query

### getSource

public DoubleValuesSource getSource()

Returns:
  the underlying value source

### boostByValue

public static FunctionScoreQuery boostByValue(Query in, DoubleValuesSource boost)
Returns a FunctionScoreQuery where the scores of a wrapped query are multiplied by the value of a DoubleValuesSource.

If the source has no value for a particular document, the score for that document is preserved as-is.

Parameters:
  `in` - the query to boost
  `boost` - a `DoubleValuesSource` containing the boost values

### boostByQuery

public static FunctionScoreQuery boostByQuery(Query in, Query boostMatch, float boostValue)
Returns a FunctionScoreQuery where the scores of a wrapped query are multiplied by a boost factor if the document being scored also matches a separate boosting query.

Documents that do not match the boosting query have their scores preserved.

This may be used to 'demote' documents that match the boosting query, by passing in a boostValue between 0 and 1.

Parameters:
  `in` - the query to boost
  `boostMatch` - the boosting query
  `boostValue` - the amount to boost documents which match the boosting query

### createWeight

public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException

Overrides:
  `createWeight` in class `Query`
Throws:
  `IOException`

### rewrite

public Query rewrite(IndexSearcher indexSearcher) throws IOException

Overrides:
  `rewrite` in class `Query`
Throws:
  `IOException`

### visit

public void visit(QueryVisitor visitor)

Specified by:
  `visit` in class `Query`

### toString

public String toString(String field)

Specified by:
  `toString` in class `Query`

### equals

public boolean equals(Object o)

Specified by:
  `equals` in class `Query`

### hashCode

public int hashCode()

Specified by:
  `hashCode` in class `Query`