boost.asciidoc 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. [[mapping-boost]]
  2. === `boost`
  3. Individual fields can be _boosted_ automatically -- count more towards the relevance score
  4. -- at query time, with the `boost` parameter as follows:
  5. [source,console]
  6. --------------------------------------------------
  7. PUT my_index
  8. {
  9. "mappings": {
  10. "properties": {
  11. "title": {
  12. "type": "text",
  13. "boost": 2 <1>
  14. },
  15. "content": {
  16. "type": "text"
  17. }
  18. }
  19. }
  20. }
  21. --------------------------------------------------
  22. <1> Matches on the `title` field will have twice the weight as those on the
  23. `content` field, which has the default `boost` of `1.0`.
  24. NOTE: The boost is applied only for term queries (prefix, range and fuzzy queries are not _boosted_).
  25. You can achieve the same effect by using the boost parameter directly in the query, for instance the following query (with field time boost):
  26. [source,console]
  27. --------------------------------------------------
  28. POST _search
  29. {
  30. "query": {
  31. "match" : {
  32. "title": {
  33. "query": "quick brown fox"
  34. }
  35. }
  36. }
  37. }
  38. --------------------------------------------------
  39. is equivalent to:
  40. [source,console]
  41. --------------------------------------------------
  42. POST _search
  43. {
  44. "query": {
  45. "match" : {
  46. "title": {
  47. "query": "quick brown fox",
  48. "boost": 2
  49. }
  50. }
  51. }
  52. }
  53. --------------------------------------------------
  54. deprecated[5.0.0, "Index time boost is deprecated. Instead, the field mapping boost is applied at query time. For indices created before 5.0.0, the boost will still be applied at index time."]
  55. [WARNING]
  56. .Why index time boosting is a bad idea
  57. ==================================================
  58. We advise against using index time boosting for the following reasons:
  59. * You cannot change index-time `boost` values without reindexing all of your
  60. documents.
  61. * Every query supports query-time boosting which achieves the same effect. The
  62. difference is that you can tweak the `boost` value without having to reindex.
  63. * Index-time boosts are stored as part of the <<norms,`norm`>>, which is only one
  64. byte. This reduces the resolution of the field length normalization factor
  65. which can lead to lower quality relevance calculations.
  66. ==================================================