使用 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
字段不太可能显着提高速度,反而会增加存储索引所需的磁盘空间量。