norms编辑

Norms 存储各种标准化因子,这些因子稍后在查询时用于计算文档相对于查询的分数。

尽管对评分很有用,但 norms 也需要相当多的磁盘空间(通常在索引中每个字段每个文档大约需要一个字节,即使对于没有此特定字段的文档也是如此)。因此,如果您不需要对特定字段进行评分,则应禁用该字段上的 norms。特别是,对于仅用于过滤或聚合的字段,情况就是这样。

可以使用 更新映射 API 在现有字段上禁用 Norms。

可以使用 更新映射 API 禁用 Norms(但在禁用后无法重新启用),如下所示

response = client.indices.put_mapping(
  index: 'my-index-000001',
  body: {
    properties: {
      title: {
        type: 'text',
        norms: false
      }
    }
  }
)
puts response
PUT my-index-000001/_mapping
{
  "properties": {
    "title": {
      "type": "text",
      "norms": false
    }
  }
}

Norms 不会立即删除,而是在您继续索引新文档时,将旧段合并到新段中时删除。对已删除 norms 的字段进行的任何分数计算都可能返回不一致的结果,因为某些文档不再具有 norms,而其他文档可能仍然具有 norms。