我们有一个索引模板,最多可包含 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”?因此:
如果是,我怎样才能实现这一目标?预先感谢。
您无需担心
null
值,因为:
无法对空值进行索引或搜索。当字段设置为 null,(或空数组或空值数组)它被视为 尽管该字段没有值。 https://www.elastic.co/guide/en/elasticsearch/reference/current/null-value.html
如果您想删除值为
null
的字段,您可以检查 this stackoverflow 答案。