Elasticsearch:如果值为 null,如何删除存储的属性

问题描述 投票:0回答:1

我们有一个索引模板,最多可包含 150 个属性。某些属性的值为 null 取决于名为“RecordType”的字段。

Elasticsearch 如何删除具有 null 的属性来优化索引大小?而不是用空值更新。

例如,假设有一个具有 5 个属性的文档。两种记录类型(预付费和后付费)使用相同的索引模板。

{
  "firstName" : "mary", 
  "lastName" : "nelson", 
  "phone" : "1234567",
  "expiryDate" : "31/12/2025",
  "company" : null,   //null for Prepaid
  "billCycle": null   //null for Prepaid
  "recordTpe" : "Prepaid"
}
{
  "firstName" : "mary", 
  "lastName" : "nelson", 
  "phone" : "1234567",
  "expiryDate": null,   // null for Postpaid 
  "company" : "companyA",
  "billCycle": "monthly"
  "recordTpe" : "Postpaid"
}

如果我们选择在值为空时删除存储的属性,会有什么不同吗

{
  "firstName" : "mary", 
  "lastName" : "nelson", 
  "phone" : "1234567",
  "expiryDate" : "31/12/2025",
  "recordTpe" : "Prepaid"
}
{
  "firstName" : "mary", 
  "lastName" : "nelson", 
  "phone" : "1234567",
  "company" : "companyA",
  "billCycle": "monthly"
  "recordTpe" : "Postpaid"
}

可以在 Elasticsearch 中删除具有 null 值的属性(在我的示例中,这取决于 recordType”?因此:

  • 空值不会被索引
  • 不会存储空值以减少索引大小

如果是,我怎样才能实现这一目标?预先感谢。

performance elasticsearch null
1个回答
0
投票

您无需担心

null
值,因为:

无法对空值进行索引或搜索。当字段设置为 null,(或空数组或空值数组)它被视为 尽管该字段没有值。 https://www.elastic.co/guide/en/elasticsearch/reference/current/null-value.html

如果您想删除值为

null
的字段,您可以检查 this stackoverflow 答案。

© www.soinside.com 2019 - 2024. All rights reserved.