在查询或映射中提升值

时间:2015-07-24 11:43:45

标签: elasticsearch

我可以通过

等查询发送提升值
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "title": {
              "query": "quick brown fox",
              "boost": 2 
            }
          }
        }
      ]
    }
  }
}

但我也可以在映射中设置提升值

{
  "properties": {
    "title": {
      "type": "string",
      "boost": 2
    },
    "tags": {
      "type": "string"
    }
  }
}

我的问题是。在执行查询时,提高映射速度或在查询中设置提升速度更快,或者速度是否相等。

1 个答案:

答案 0 :(得分:1)

Elastic本身推荐的索引时间提升有多种原因:

  • 将boost与字段长度范数相结合并将其存储在单个字节中意味着字段长度范数会失去精度。结果是Elasticsearch无法区分包含三个单词的字段和包含五个单词的字段。
  • 要更改索引时间提升,您必须重新索引所有文档。另一方面,查询时间提升可以随每次查询而改变。
  • 如果具有索引时间提升的字段具有多个值,则每个值的增量都会自动乘以,从而显着增加该字段的权重。

有关详细信息,请参阅https://www.elastic.co/guide/en/elasticsearch/guide/current/practical-scoring-function.html

至于速度,我认为它根本没有太大变化,所以你应该坚持查询时间提升,这是常态。