_boostedit
Deprecated in 1.0.0.RC1.
Boosting is the process of enhancing the relevancy of a document or field. Field level mapping allows to define an explicit boost level on a specific field. The boost field mapping (applied on the root object) allows to define a boost field mapping where its content will control the boost level of the document. For example, consider the following mapping:
{
"tweet" : {
"_boost" : {"name" : "my_boost", "null_value" : 1.0}
}
}The above mapping defines a mapping for a field named my_boost. If the
my_boost field exists within the JSON document indexed, its value will
control the boost level of the document indexed. For example, the
following JSON document will be indexed with a boost value of 2.2:
{
"my_boost" : 2.2,
"message" : "This is a tweet!"
}Function score instead of boostedit
Support for document boosting via the _boost field has been removed
from Lucene and is deprecated in Elasticsearch as of v1.0.0.RC1. The
implementation in Lucene resulted in unpredictable result when
used with multiple fields or multi-value fields.
Instead, the Function Score Query can be used to achieve the desired functionality by boosting each document by the value in any field of the document:
{
"query": {
"function_score": {
"query": {
"match": {
"title": "your main query"
}
},
"functions": [{
"field_value_factor": {
"field": "my_boost_field"
}
}],
"score_mode": "multiply"
}
}
}
The original query, now wrapped in a | |
This function returns the value in |
Note, that field_value_factor is a 1.2.x feature.