123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- [[mapping-boost-field]]
- === `_boost`
- deprecated[1.0.0.RC1,See <<function-score-instead-of-boost>>]
- 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
- <<mapping-root-object-type,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:
- [source,js]
- --------------------------------------------------
- {
- "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`:
- [source,js]
- --------------------------------------------------
- {
- "my_boost" : 2.2,
- "message" : "This is a tweet!"
- }
- --------------------------------------------------
- [[function-score-instead-of-boost]]
- ==== Function score instead of boost
- 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 <<query-dsl-function-score-query>> can be used to achieve
- the desired functionality by boosting each document by the value in
- any field the document:
- [source,js]
- --------------------------------------------------
- {
- "query": {
- "function_score": {
- "query": { <1>
- "match": {
- "title": "your main query"
- }
- },
- "functions": [{
- "script_score": { <2>
- "script": "doc['my_boost_field'].value"
- }
- }],
- "score_mode": "multiply"
- }
- }
- }
- --------------------------------------------------
- <1> The original query, now wrapped in a `function_score` query.
- <2> This script returns the value in `my_boost_field`, which is then
- multiplied by the query `_score` for each document.
|