使用 murmur3 字段
编辑使用 murmur3
字段
编辑murmur3
通常用于多字段中,以便将原始值及其哈希值都存储在索引中。
PUT my-index-000001 { "mappings": { "properties": { "my_field": { "type": "keyword", "fields": { "hash": { "type": "murmur3" } } } } } }
这种映射允许引用 my_field.hash
以获取 my_field
字段值的哈希值。这仅在运行 cardinality
聚合时才有用。
# Example documents PUT my-index-000001/_doc/1 { "my_field": "This is a document" } PUT my-index-000001/_doc/2 { "my_field": "This is another document" } GET my-index-000001/_search { "aggs": { "my_field_cardinality": { "cardinality": { "field": "my_field.hash" } } } }
直接在 my_field
字段上运行 cardinality
聚合将产生相同的结果,但是使用 my_field.hash
代替可能会提高速度,前提是该字段具有高基数。另一方面,不建议在数值字段和几乎不唯一的字符串字段上使用 murmur3
字段,因为使用 murmur3
字段不太可能带来明显的加速,反而会增加存储索引所需的磁盘空间。