question: public static Set < String > computeHashIndex ( long docHash ) { int bandIndex = 0 ; BitSet bitRange = new BitSet ( BAND_WIDTH ) ; int bitsWidthCounter = 0 ; Set < String > bandBitset = new HashSet < > ( ) ; for ( int i = 0 ; i < HASH_LENGTH ; ++ i ) { bitRange . set ( bitsWidthCounter , ( ( docHash > > i ) & 1 ) == 1 ) ; if ( bitsWidthCounter ++ == BAND_WIDTH ) { bandBitset . add ( bandIndex + "_" + bitRange . toString ( ) ) ; bitsWidthCounter = 0 ; bitRange = new BitSet ( BAND_WIDTH ) ; bandIndex ++ ; } } return bandBitset ; }
target:  divide the 64-bit hash into 4 bit ranges of 16 bits. It will be used to get similar candidates.