Enum Class MurmurHash3

java.lang.Object
java.lang.Enum<MurmurHash3>
org.elasticsearch.common.hash.MurmurHash3
All Implemented Interfaces:
Serializable, Comparable<MurmurHash3>, Constable

public enum MurmurHash3 extends Enum<MurmurHash3>
MurmurHash3 hashing functions.
  • Method Details

    • values

      public static MurmurHash3[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static MurmurHash3 valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getblock

      protected static long getblock(byte[] key, int offset, int index)
    • fmix

      protected static long fmix(long k)
    • hash128

      public static MurmurHash3.Hash128 hash128(byte[] key, int offset, int length, long seed, MurmurHash3.Hash128 hash)
      Compute the hash of the MurmurHash3_x64_128 hashing function. Note, this hashing function might be used to persist hashes, so if the way hashes are computed changes for some reason, it needs to be addressed (like in BloomFilter and MurmurHashField).
    • murmur64

      public static long murmur64(long h)
      A 64-bit variant which accepts a long to hash, and returns the 64bit long hash. This is useful if the input is already in long (or smaller) format and you don't need the full 128b width and flexibility of hash128(byte[], int, int, long, Hash128) Given the limited nature of this variant, it should be faster than the 128b version when you only need 128b (many fewer instructions)