public Builder add(int docId) {if (docId <= lastDocId) {throw new IllegalArgumentException("Doc ids must be added in-order, got " + docId + " which is <= lastDocID=" + lastDocId);}final int block = docId >>> 16;if (block != currentBlock) {flush();currentBlock = block;}if (currentBlockCardinality < MAX_ARRAY_LENGTH) {buffer[currentBlockCardinality] = (short) docId;} else {if (denseBuffer == null) {final int numBits = Math.min(1 << 16, maxDoc - (block << 16));denseBuffer = new FixedBitSet(numBits);for (short doc : buffer) {denseBuffer.set(doc & 0xFFFF);}}denseBuffer.set(docId & 0xFFFF);}lastDocId = docId;currentBlockCardinality += 1;return this;}

public Builder Add(int docID){if (docID <= lastDocID){throw new System.ArgumentException("Doc ids must be added in-order, got " + docID + " which is <= lastDocID=" + lastDocID);}int wordNum = WordNum(docID);if (this.wordNum == -1){this.wordNum = wordNum;word = 1 << (docID & 0x07);}else if (wordNum == this.wordNum){word |= 1 << (docID & 0x07);}else{AddWord(this.wordNum, (byte)word);this.wordNum = wordNum;word = 1 << (docID & 0x07);}lastDocID = docID;return this;}
