You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2018/05/08 08:34:45 UTC
[2/3] lucene-solr:master: LUCENE-8267: removed references to memory
codecs.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java b/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java
deleted file mode 100644
index 2433de7..0000000
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java
+++ /dev/null
@@ -1,1037 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.lucene.codecs.memory;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-
-import org.apache.lucene.codecs.CodecUtil;
-import org.apache.lucene.codecs.FieldsConsumer;
-import org.apache.lucene.codecs.FieldsProducer;
-import org.apache.lucene.codecs.NormsProducer;
-import org.apache.lucene.codecs.PostingsFormat;
-import org.apache.lucene.codecs.TermStats;
-import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.Fields;
-import org.apache.lucene.index.ImpactsEnum;
-import org.apache.lucene.index.IndexFileNames;
-import org.apache.lucene.index.IndexOptions;
-import org.apache.lucene.index.PostingsEnum;
-import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.index.SegmentWriteState;
-import org.apache.lucene.index.SlowImpactsEnum;
-import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.store.ByteArrayDataInput;
-import org.apache.lucene.store.ChecksumIndexInput;
-import org.apache.lucene.store.IOContext;
-import org.apache.lucene.store.IndexInput;
-import org.apache.lucene.store.IndexOutput;
-import org.apache.lucene.store.RAMOutputStream;
-import org.apache.lucene.util.Accountable;
-import org.apache.lucene.util.Accountables;
-import org.apache.lucene.util.ArrayUtil;
-import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.FixedBitSet;
-import org.apache.lucene.util.IOUtils;
-import org.apache.lucene.util.IntsRefBuilder;
-import org.apache.lucene.util.fst.Builder;
-import org.apache.lucene.util.fst.ByteSequenceOutputs;
-import org.apache.lucene.util.fst.BytesRefFSTEnum;
-import org.apache.lucene.util.fst.FST;
-import org.apache.lucene.util.fst.Util;
-import org.apache.lucene.util.packed.PackedInts;
-
-// TODO: would be nice to somehow allow this to act like
-// InstantiatedIndex, by never writing to disk; ie you write
-// to this Codec in RAM only and then when you open a reader
-// it pulls the FST directly from what you wrote w/o going
-// to disk.
-
-/** Stores terms and postings (docs, positions, payloads) in
- * RAM, using an FST.
- *
- * <p>Note that this codec implements advance as a linear
- * scan! This means if you store large fields in here,
- * queries that rely on advance will (AND BooleanQuery,
- * PhraseQuery) will be relatively slow!
- *
- * @lucene.experimental */
-
-// TODO: Maybe name this 'Cached' or something to reflect
-// the reality that it is actually written to disk, but
-// loads itself in ram?
-public final class MemoryPostingsFormat extends PostingsFormat {
-
- public MemoryPostingsFormat() {
- this(false, PackedInts.DEFAULT);
- }
-
- /**
- * Create MemoryPostingsFormat, specifying advanced FST options.
- * @param doPackFST true if a packed FST should be built.
- * NOTE: packed FSTs are limited to ~2.1 GB of postings.
- * @param acceptableOverheadRatio allowable overhead for packed ints
- * during FST construction.
- */
- public MemoryPostingsFormat(boolean doPackFST, float acceptableOverheadRatio) {
- super("Memory");
- }
-
- @Override
- public String toString() {
- return "PostingsFormat(name=" + getName() + ")";
- }
-
- private final static class TermsWriter {
- private final IndexOutput out;
- private final FieldInfo field;
- private final Builder<BytesRef> builder;
- private final ByteSequenceOutputs outputs = ByteSequenceOutputs.getSingleton();
- private int termCount;
-
- public TermsWriter(IndexOutput out, FieldInfo field) {
- this.out = out;
- this.field = field;
- builder = new Builder<>(FST.INPUT_TYPE.BYTE1, 0, 0, true, true, Integer.MAX_VALUE, outputs, true, 15);
- }
-
- private class PostingsWriter {
- private int lastDocID;
- private int lastPos;
- private int lastPayloadLen;
-
- // NOTE: not private so we don't pay access check at runtime:
- int docCount;
- RAMOutputStream buffer = new RAMOutputStream();
-
- int lastOffsetLength;
- int lastOffset;
-
- public void startDoc(int docID, int termDocFreq) throws IOException {
- //System.out.println(" startDoc docID=" + docID + " freq=" + termDocFreq);
- final int delta = docID - lastDocID;
- assert docID == 0 || delta > 0;
- lastDocID = docID;
- docCount++;
-
- if (field.getIndexOptions() == IndexOptions.DOCS) {
- buffer.writeVInt(delta);
- } else if (termDocFreq == 1) {
- buffer.writeVInt((delta<<1) | 1);
- } else {
- buffer.writeVInt(delta<<1);
- assert termDocFreq > 0;
- buffer.writeVInt(termDocFreq);
- }
-
- lastPos = 0;
- lastOffset = 0;
- }
-
- public void addPosition(int pos, BytesRef payload, int startOffset, int endOffset) throws IOException {
- assert payload == null || field.hasPayloads();
-
- //System.out.println(" addPos pos=" + pos + " payload=" + payload);
-
- final int delta = pos - lastPos;
- assert delta >= 0;
- lastPos = pos;
-
- int payloadLen = 0;
-
- if (field.hasPayloads()) {
- payloadLen = payload == null ? 0 : payload.length;
- if (payloadLen != lastPayloadLen) {
- lastPayloadLen = payloadLen;
- buffer.writeVInt((delta<<1)|1);
- buffer.writeVInt(payloadLen);
- } else {
- buffer.writeVInt(delta<<1);
- }
- } else {
- buffer.writeVInt(delta);
- }
-
- if (field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0) {
- // don't use startOffset - lastEndOffset, because this creates lots of negative vints for synonyms,
- // and the numbers aren't that much smaller anyways.
- int offsetDelta = startOffset - lastOffset;
- int offsetLength = endOffset - startOffset;
- if (offsetLength != lastOffsetLength) {
- buffer.writeVInt(offsetDelta << 1 | 1);
- buffer.writeVInt(offsetLength);
- } else {
- buffer.writeVInt(offsetDelta << 1);
- }
- lastOffset = startOffset;
- lastOffsetLength = offsetLength;
- }
-
- if (payloadLen > 0) {
- buffer.writeBytes(payload.bytes, payload.offset, payloadLen);
- }
- }
-
- public PostingsWriter reset() {
- assert buffer.getFilePointer() == 0;
- lastDocID = 0;
- docCount = 0;
- lastPayloadLen = 0;
- // force first offset to write its length
- lastOffsetLength = -1;
- return this;
- }
- }
-
- final PostingsWriter postingsWriter = new PostingsWriter();
-
- private final RAMOutputStream buffer2 = new RAMOutputStream();
- private final BytesRef spare = new BytesRef();
- private byte[] finalBuffer = new byte[128];
-
- private final IntsRefBuilder scratchIntsRef = new IntsRefBuilder();
-
- private void finishTerm(BytesRef text, TermStats stats) throws IOException {
-
- if (stats.docFreq == 0) {
- return;
- }
- assert postingsWriter.docCount == stats.docFreq;
-
- assert buffer2.getFilePointer() == 0;
-
- buffer2.writeVInt(stats.docFreq);
- if (field.getIndexOptions() != IndexOptions.DOCS) {
- buffer2.writeVLong(stats.totalTermFreq-stats.docFreq);
- }
- int pos = (int) buffer2.getFilePointer();
- buffer2.writeTo(finalBuffer, 0);
- buffer2.reset();
-
- final int totalBytes = pos + (int) postingsWriter.buffer.getFilePointer();
- if (totalBytes > finalBuffer.length) {
- finalBuffer = ArrayUtil.grow(finalBuffer, totalBytes);
- }
- postingsWriter.buffer.writeTo(finalBuffer, pos);
- postingsWriter.buffer.reset();
-
- spare.bytes = finalBuffer;
- spare.length = totalBytes;
-
- //System.out.println(" finishTerm term=" + text.utf8ToString() + " " + totalBytes + " bytes totalTF=" + stats.totalTermFreq);
- //for(int i=0;i<totalBytes;i++) {
- // System.out.println(" " + Integer.toHexString(finalBuffer[i]&0xFF));
- //}
-
- builder.add(Util.toIntsRef(text, scratchIntsRef), BytesRef.deepCopyOf(spare));
- termCount++;
- }
-
- public void finish(long sumTotalTermFreq, long sumDocFreq, int docCount) throws IOException {
- if (termCount > 0) {
- out.writeVInt(termCount);
- out.writeVInt(field.number);
- if (field.getIndexOptions() != IndexOptions.DOCS) {
- out.writeVLong(sumTotalTermFreq);
- }
- out.writeVLong(sumDocFreq);
- out.writeVInt(docCount);
- FST<BytesRef> fst = builder.finish();
- fst.save(out);
- //System.out.println("finish field=" + field.name + " fp=" + out.getFilePointer());
- }
- }
- }
-
- private static String EXTENSION = "ram";
- private static final String CODEC_NAME = "MemoryPostings";
- private static final int VERSION_START = 1;
- private static final int VERSION_CURRENT = VERSION_START;
-
- private static class MemoryFieldsConsumer extends FieldsConsumer {
- private final SegmentWriteState state;
- private final IndexOutput out;
-
- private MemoryFieldsConsumer(SegmentWriteState state) throws IOException {
- final String fileName = IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, EXTENSION);
- out = state.directory.createOutput(fileName, state.context);
- boolean success = false;
- try {
- CodecUtil.writeIndexHeader(out, CODEC_NAME, VERSION_CURRENT, state.segmentInfo.getId(), state.segmentSuffix);
- success = true;
- } finally {
- if (!success) {
- IOUtils.closeWhileHandlingException(out);
- }
- }
- this.state = state;
- }
-
- @Override
- public void write(Fields fields, NormsProducer norms) throws IOException {
- for(String field : fields) {
-
- Terms terms = fields.terms(field);
- if (terms == null) {
- continue;
- }
-
- TermsEnum termsEnum = terms.iterator();
-
- FieldInfo fieldInfo = state.fieldInfos.fieldInfo(field);
- TermsWriter termsWriter = new TermsWriter(out, fieldInfo);
-
- FixedBitSet docsSeen = new FixedBitSet(state.segmentInfo.maxDoc());
- long sumTotalTermFreq = 0;
- long sumDocFreq = 0;
- PostingsEnum postingsEnum = null;
- PostingsEnum posEnum = null;
- int enumFlags;
-
- IndexOptions indexOptions = fieldInfo.getIndexOptions();
- boolean writeFreqs = indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS) >= 0;
- boolean writePositions = indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
- boolean writeOffsets = indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
- boolean writePayloads = fieldInfo.hasPayloads();
-
- if (writeFreqs == false) {
- enumFlags = 0;
- } else if (writePositions == false) {
- enumFlags = PostingsEnum.FREQS;
- } else if (writeOffsets == false) {
- if (writePayloads) {
- enumFlags = PostingsEnum.PAYLOADS;
- }
- else {
- enumFlags = PostingsEnum.POSITIONS;
- }
- } else {
- if (writePayloads) {
- enumFlags = PostingsEnum.PAYLOADS | PostingsEnum.OFFSETS;
- } else {
- enumFlags = PostingsEnum.OFFSETS;
- }
- }
-
- while (true) {
- BytesRef term = termsEnum.next();
- if (term == null) {
- break;
- }
- termsWriter.postingsWriter.reset();
-
- if (writePositions) {
- posEnum = termsEnum.postings(posEnum, enumFlags);
- postingsEnum = posEnum;
- } else {
- postingsEnum = termsEnum.postings(postingsEnum, enumFlags);
- posEnum = null;
- }
-
- int docFreq = 0;
- long totalTermFreq = 0;
- while (true) {
- int docID = postingsEnum.nextDoc();
- if (docID == PostingsEnum.NO_MORE_DOCS) {
- break;
- }
- docsSeen.set(docID);
- docFreq++;
-
- int freq;
- if (writeFreqs) {
- freq = postingsEnum.freq();
- totalTermFreq += freq;
- } else {
- freq = -1;
- }
-
- termsWriter.postingsWriter.startDoc(docID, freq);
- if (writePositions) {
- for (int i=0;i<freq;i++) {
- int pos = posEnum.nextPosition();
- BytesRef payload = writePayloads ? posEnum.getPayload() : null;
- int startOffset;
- int endOffset;
- if (writeOffsets) {
- startOffset = posEnum.startOffset();
- endOffset = posEnum.endOffset();
- } else {
- startOffset = -1;
- endOffset = -1;
- }
- termsWriter.postingsWriter.addPosition(pos, payload, startOffset, endOffset);
- }
- }
- }
- termsWriter.finishTerm(term, new TermStats(docFreq, totalTermFreq));
- sumDocFreq += docFreq;
- sumTotalTermFreq += totalTermFreq;
- }
-
- termsWriter.finish(sumTotalTermFreq, sumDocFreq, docsSeen.cardinality());
- }
- }
-
- private boolean closed;
-
- @Override
- public void close() throws IOException {
- if (closed) {
- return;
- }
- closed = true;
-
- // EOF marker:
- try (IndexOutput out = this.out) {
- out.writeVInt(0);
- CodecUtil.writeFooter(out);
- }
- }
- }
-
- @Override
- public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException {
- return new MemoryFieldsConsumer(state);
- }
-
- private final static class FSTDocsEnum extends PostingsEnum {
- private final IndexOptions indexOptions;
- private final boolean storePayloads;
- private byte[] buffer = new byte[16];
- private final ByteArrayDataInput in = new ByteArrayDataInput(buffer);
-
- private int docUpto;
- private int docID = -1;
- private int accum;
- private int freq;
- private int payloadLen;
- private int numDocs;
-
- public FSTDocsEnum(IndexOptions indexOptions, boolean storePayloads) {
- this.indexOptions = indexOptions;
- this.storePayloads = storePayloads;
- }
-
- public boolean canReuse(IndexOptions indexOptions, boolean storePayloads) {
- return indexOptions == this.indexOptions && storePayloads == this.storePayloads;
- }
-
- public FSTDocsEnum reset(BytesRef bufferIn, int numDocs) {
- assert numDocs > 0;
- if (buffer.length < bufferIn.length) {
- buffer = ArrayUtil.grow(buffer, bufferIn.length);
- }
- in.reset(buffer, 0, bufferIn.length);
- System.arraycopy(bufferIn.bytes, bufferIn.offset, buffer, 0, bufferIn.length);
- docID = -1;
- accum = 0;
- docUpto = 0;
- freq = 1;
- payloadLen = 0;
- this.numDocs = numDocs;
- return this;
- }
-
- @Override
- public int nextDoc() {
- //System.out.println(" nextDoc cycle docUpto=" + docUpto + " numDocs=" + numDocs + " fp=" + in.getPosition() + " this=" + this);
- if (docUpto == numDocs) {
- // System.out.println(" END");
- return docID = NO_MORE_DOCS;
- }
- docUpto++;
- if (indexOptions == IndexOptions.DOCS) {
- accum += in.readVInt();
- } else {
- final int code = in.readVInt();
- accum += code >>> 1;
- //System.out.println(" docID=" + accum + " code=" + code);
- if ((code & 1) != 0) {
- freq = 1;
- } else {
- freq = in.readVInt();
- assert freq > 0;
- }
-
- if (indexOptions == IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) {
- // Skip positions/payloads
- for(int posUpto=0;posUpto<freq;posUpto++) {
- if (!storePayloads) {
- in.readVInt();
- } else {
- final int posCode = in.readVInt();
- if ((posCode & 1) != 0) {
- payloadLen = in.readVInt();
- }
- in.skipBytes(payloadLen);
- }
- }
- } else if (indexOptions == IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) {
- // Skip positions/offsets/payloads
- for(int posUpto=0;posUpto<freq;posUpto++) {
- int posCode = in.readVInt();
- if (storePayloads && ((posCode & 1) != 0)) {
- payloadLen = in.readVInt();
- }
- if ((in.readVInt() & 1) != 0) {
- // new offset length
- in.readVInt();
- }
- if (storePayloads) {
- in.skipBytes(payloadLen);
- }
- }
- }
- }
-
- //System.out.println(" return docID=" + accum + " freq=" + freq);
- return (docID = accum);
- }
-
- @Override
- public int docID() {
- return docID;
- }
-
- @Override
- public int advance(int target) throws IOException {
- // TODO: we could make more efficient version, but, it
- // should be rare that this will matter in practice
- // since usually apps will not store "big" fields in
- // this codec!
- return slowAdvance(target);
- }
-
- @Override
- public int freq() {
- return freq;
- }
-
- @Override
- public long cost() {
- return numDocs;
- }
-
- @Override
- public int nextPosition() throws IOException {
- return -1;
- }
-
- @Override
- public int startOffset() throws IOException {
- return -1;
- }
-
- @Override
- public int endOffset() throws IOException {
- return -1;
- }
-
- @Override
- public BytesRef getPayload() throws IOException {
- return null;
- }
- }
-
- private final static class FSTPostingsEnum extends PostingsEnum {
- private final boolean storePayloads;
- private byte[] buffer = new byte[16];
- private final ByteArrayDataInput in = new ByteArrayDataInput(buffer);
-
- private int docUpto;
- private int docID = -1;
- private int accum;
- private int freq;
- private int numDocs;
- private int posPending;
- private int payloadLength;
- final boolean storeOffsets;
- int offsetLength;
- int startOffset;
-
- private int pos;
- private final BytesRef payload = new BytesRef();
-
- public FSTPostingsEnum(boolean storePayloads, boolean storeOffsets) {
- this.storePayloads = storePayloads;
- this.storeOffsets = storeOffsets;
- }
-
- public boolean canReuse(boolean storePayloads, boolean storeOffsets) {
- return storePayloads == this.storePayloads && storeOffsets == this.storeOffsets;
- }
-
- public FSTPostingsEnum reset(BytesRef bufferIn, int numDocs) {
- assert numDocs > 0;
-
- // System.out.println("D&P reset bytes this=" + this);
- // for(int i=bufferIn.offset;i<bufferIn.length;i++) {
- // System.out.println(" " + Integer.toHexString(bufferIn.bytes[i]&0xFF));
- // }
-
- if (buffer.length < bufferIn.length) {
- buffer = ArrayUtil.grow(buffer, bufferIn.length);
- }
- in.reset(buffer, 0, bufferIn.length - bufferIn.offset);
- System.arraycopy(bufferIn.bytes, bufferIn.offset, buffer, 0, bufferIn.length);
- docID = -1;
- accum = 0;
- docUpto = 0;
- payload.bytes = buffer;
- payloadLength = 0;
- this.numDocs = numDocs;
- posPending = 0;
- startOffset = storeOffsets ? 0 : -1; // always return -1 if no offsets are stored
- offsetLength = 0;
- return this;
- }
-
- @Override
- public int nextDoc() {
- while (posPending > 0) {
- nextPosition();
- }
- while(true) {
- //System.out.println(" nextDoc cycle docUpto=" + docUpto + " numDocs=" + numDocs + " fp=" + in.getPosition() + " this=" + this);
- if (docUpto == numDocs) {
- //System.out.println(" END");
- return docID = NO_MORE_DOCS;
- }
- docUpto++;
-
- final int code = in.readVInt();
- accum += code >>> 1;
- if ((code & 1) != 0) {
- freq = 1;
- } else {
- freq = in.readVInt();
- assert freq > 0;
- }
-
- pos = 0;
- startOffset = storeOffsets ? 0 : -1;
- posPending = freq;
- //System.out.println(" return docID=" + accum + " freq=" + freq);
- return (docID = accum);
- }
- }
-
- @Override
- public int nextPosition() {
- //System.out.println(" nextPos storePayloads=" + storePayloads + " this=" + this);
- assert posPending > 0;
- posPending--;
- if (!storePayloads) {
- pos += in.readVInt();
- } else {
- final int code = in.readVInt();
- pos += code >>> 1;
- if ((code & 1) != 0) {
- payloadLength = in.readVInt();
- //System.out.println(" new payloadLen=" + payloadLength);
- //} else {
- //System.out.println(" same payloadLen=" + payloadLength);
- }
- }
-
- if (storeOffsets) {
- int offsetCode = in.readVInt();
- if ((offsetCode & 1) != 0) {
- // new offset length
- offsetLength = in.readVInt();
- }
- startOffset += offsetCode >>> 1;
- }
-
- if (storePayloads) {
- payload.offset = in.getPosition();
- in.skipBytes(payloadLength);
- payload.length = payloadLength;
- }
-
- //System.out.println(" pos=" + pos + " payload=" + payload + " fp=" + in.getPosition());
- return pos;
- }
-
- @Override
- public int startOffset() {
- return startOffset;
- }
-
- @Override
- public int endOffset() {
- return startOffset + offsetLength;
- }
-
- @Override
- public BytesRef getPayload() {
- return payload.length > 0 ? payload : null;
- }
-
- @Override
- public int docID() {
- return docID;
- }
-
- @Override
- public int advance(int target) throws IOException {
- // TODO: we could make more efficient version, but, it
- // should be rare that this will matter in practice
- // since usually apps will not store "big" fields in
- // this codec!
- return slowAdvance(target);
- }
-
- @Override
- public int freq() {
- return freq;
- }
-
- @Override
- public long cost() {
- return numDocs;
- }
- }
-
- private final static class FSTTermsEnum extends TermsEnum {
- private final FieldInfo field;
- private final BytesRefFSTEnum<BytesRef> fstEnum;
- private final ByteArrayDataInput buffer = new ByteArrayDataInput();
- private boolean didDecode;
-
- private int docFreq;
- private long totalTermFreq;
- private BytesRefFSTEnum.InputOutput<BytesRef> current;
- private BytesRef postingsSpare = new BytesRef();
-
- public FSTTermsEnum(FieldInfo field, FST<BytesRef> fst) {
- this.field = field;
- fstEnum = new BytesRefFSTEnum<>(fst);
- }
-
- private void decodeMetaData() {
- if (!didDecode) {
- buffer.reset(current.output.bytes, current.output.offset, current.output.length);
- docFreq = buffer.readVInt();
- if (field.getIndexOptions() == IndexOptions.DOCS) {
- totalTermFreq = docFreq;
- } else {
- totalTermFreq = docFreq + buffer.readVLong();
- }
- postingsSpare.bytes = current.output.bytes;
- postingsSpare.offset = buffer.getPosition();
- postingsSpare.length = current.output.length - (buffer.getPosition() - current.output.offset);
- //System.out.println(" df=" + docFreq + " totTF=" + totalTermFreq + " offset=" + buffer.getPosition() + " len=" + current.output.length);
- didDecode = true;
- }
- }
-
- @Override
- public boolean seekExact(BytesRef text) throws IOException {
- //System.out.println("te.seekExact text=" + field.name + ":" + text.utf8ToString() + " this=" + this);
- current = fstEnum.seekExact(text);
- didDecode = false;
- return current != null;
- }
-
- @Override
- public SeekStatus seekCeil(BytesRef text) throws IOException {
- //System.out.println("te.seek text=" + field.name + ":" + text.utf8ToString() + " this=" + this);
- current = fstEnum.seekCeil(text);
- if (current == null) {
- return SeekStatus.END;
- } else {
-
- // System.out.println(" got term=" + current.input.utf8ToString());
- // for(int i=0;i<current.output.length;i++) {
- // System.out.println(" " + Integer.toHexString(current.output.bytes[i]&0xFF));
- // }
-
- didDecode = false;
-
- if (text.equals(current.input)) {
- //System.out.println(" found!");
- return SeekStatus.FOUND;
- } else {
- //System.out.println(" not found: " + current.input.utf8ToString());
- return SeekStatus.NOT_FOUND;
- }
- }
- }
-
- @Override
- public PostingsEnum postings(PostingsEnum reuse, int flags) {
-
- // TODO: the logic of which enum impl to choose should be refactored to be simpler...
- boolean hasPositions = field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
- if (hasPositions && PostingsEnum.featureRequested(flags, PostingsEnum.POSITIONS)) {
- boolean hasOffsets = field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
- decodeMetaData();
- FSTPostingsEnum docsAndPositionsEnum;
- if (reuse == null || !(reuse instanceof FSTPostingsEnum)) {
- docsAndPositionsEnum = new FSTPostingsEnum(field.hasPayloads(), hasOffsets);
- } else {
- docsAndPositionsEnum = (FSTPostingsEnum) reuse;
- if (!docsAndPositionsEnum.canReuse(field.hasPayloads(), hasOffsets)) {
- docsAndPositionsEnum = new FSTPostingsEnum(field.hasPayloads(), hasOffsets);
- }
- }
- //System.out.println("D&P reset this=" + this);
- return docsAndPositionsEnum.reset(postingsSpare, docFreq);
- }
-
- decodeMetaData();
- FSTDocsEnum docsEnum;
-
- if (reuse == null || !(reuse instanceof FSTDocsEnum)) {
- docsEnum = new FSTDocsEnum(field.getIndexOptions(), field.hasPayloads());
- } else {
- docsEnum = (FSTDocsEnum) reuse;
- if (!docsEnum.canReuse(field.getIndexOptions(), field.hasPayloads())) {
- docsEnum = new FSTDocsEnum(field.getIndexOptions(), field.hasPayloads());
- }
- }
- return docsEnum.reset(this.postingsSpare, docFreq);
- }
-
- @Override
- public ImpactsEnum impacts(int flags) throws IOException {
- return new SlowImpactsEnum(postings(null, flags));
- }
-
- @Override
- public BytesRef term() {
- return current.input;
- }
-
- @Override
- public BytesRef next() throws IOException {
- //System.out.println("te.next");
- current = fstEnum.next();
- if (current == null) {
- //System.out.println(" END");
- return null;
- }
- didDecode = false;
- //System.out.println(" term=" + field.name + ":" + current.input.utf8ToString());
- return current.input;
- }
-
- @Override
- public int docFreq() {
- decodeMetaData();
- return docFreq;
- }
-
- @Override
- public long totalTermFreq() {
- decodeMetaData();
- return totalTermFreq;
- }
-
- @Override
- public void seekExact(long ord) {
- // NOTE: we could add this...
- throw new UnsupportedOperationException();
- }
-
- @Override
- public long ord() {
- // NOTE: we could add this...
- throw new UnsupportedOperationException();
- }
- }
-
- private final static class TermsReader extends Terms implements Accountable {
-
- private final long sumTotalTermFreq;
- private final long sumDocFreq;
- private final int docCount;
- private final int termCount;
- private FST<BytesRef> fst;
- private final ByteSequenceOutputs outputs = ByteSequenceOutputs.getSingleton();
- private final FieldInfo field;
-
- public TermsReader(FieldInfos fieldInfos, IndexInput in, int termCount) throws IOException {
- this.termCount = termCount;
- final int fieldNumber = in.readVInt();
- field = fieldInfos.fieldInfo(fieldNumber);
- if (field == null) {
- throw new CorruptIndexException("invalid field number: " + fieldNumber, in);
- } else {
- sumTotalTermFreq = in.readVLong();
- }
- // if frequencies are omitted, sumDocFreq = sumTotalTermFreq and we only write one value.
- if (field.getIndexOptions() == IndexOptions.DOCS) {
- sumDocFreq = sumTotalTermFreq;
- } else {
- sumDocFreq = in.readVLong();
- }
- docCount = in.readVInt();
-
- fst = new FST<>(in, outputs);
- }
-
- @Override
- public long getSumTotalTermFreq() {
- return sumTotalTermFreq;
- }
-
- @Override
- public long getSumDocFreq() {
- return sumDocFreq;
- }
-
- @Override
- public int getDocCount() {
- return docCount;
- }
-
- @Override
- public long size() {
- return termCount;
- }
-
- @Override
- public TermsEnum iterator() {
- return new FSTTermsEnum(field, fst);
- }
-
- @Override
- public boolean hasFreqs() {
- return field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS) >= 0;
- }
-
- @Override
- public boolean hasOffsets() {
- return field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
- }
-
- @Override
- public boolean hasPositions() {
- return field.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
- }
-
- @Override
- public boolean hasPayloads() {
- return field.hasPayloads();
- }
-
- @Override
- public long ramBytesUsed() {
- return ((fst!=null) ? fst.ramBytesUsed() : 0);
- }
-
- @Override
- public Collection<Accountable> getChildResources() {
- if (fst == null) {
- return Collections.emptyList();
- } else {
- return Collections.singletonList(Accountables.namedAccountable("terms", fst));
- }
- }
-
- @Override
- public String toString() {
- return "MemoryTerms(terms=" + termCount + ",postings=" + sumDocFreq + ",positions=" + sumTotalTermFreq + ",docs=" + docCount + ")";
- }
- }
-
- @Override
- public FieldsProducer fieldsProducer(SegmentReadState state) throws IOException {
- final String fileName = IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, EXTENSION);
-
- final SortedMap<String,TermsReader> fields = new TreeMap<>();
-
- try (ChecksumIndexInput in = state.directory.openChecksumInput(fileName, IOContext.READONCE)) {
- Throwable priorE = null;
- try {
- CodecUtil.checkIndexHeader(in, CODEC_NAME, VERSION_START, VERSION_CURRENT, state.segmentInfo.getId(), state.segmentSuffix);
- while(true) {
- final int termCount = in.readVInt();
- if (termCount == 0) {
- break;
- }
- final TermsReader termsReader = new TermsReader(state.fieldInfos, in, termCount);
- // System.out.println("load field=" + termsReader.field.name);
- fields.put(termsReader.field.name, termsReader);
- }
- } catch (Throwable exception) {
- priorE = exception;
- } finally {
- CodecUtil.checkFooter(in, priorE);
- }
- }
-
- return new FieldsProducer() {
- @Override
- public Iterator<String> iterator() {
- return Collections.unmodifiableSet(fields.keySet()).iterator();
- }
-
- @Override
- public Terms terms(String field) {
- return fields.get(field);
- }
-
- @Override
- public int size() {
- return fields.size();
- }
-
- @Override
- public void close() {
- // Drop ref to FST:
- for(TermsReader termsReader : fields.values()) {
- termsReader.fst = null;
- }
- }
-
- @Override
- public long ramBytesUsed() {
- long sizeInBytes = 0;
- for(Map.Entry<String,TermsReader> entry: fields.entrySet()) {
- sizeInBytes += (entry.getKey().length() * Character.BYTES);
- sizeInBytes += entry.getValue().ramBytesUsed();
- }
- return sizeInBytes;
- }
-
- @Override
- public Collection<Accountable> getChildResources() {
- return Accountables.namedAccountables("field", fields);
- }
-
- @Override
- public String toString() {
- return "MemoryPostings(fields=" + fields.size() + ")";
- }
-
- @Override
- public void checkIntegrity() throws IOException {}
- };
- }
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.DocValuesFormat
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.DocValuesFormat b/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.DocValuesFormat
index daef7c5..33c8fad 100644
--- a/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.DocValuesFormat
+++ b/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.DocValuesFormat
@@ -13,5 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-org.apache.lucene.codecs.memory.MemoryDocValuesFormat
org.apache.lucene.codecs.memory.DirectDocValuesFormat
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.PostingsFormat
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.PostingsFormat b/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.PostingsFormat
index 710c605..1c048f8 100644
--- a/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.PostingsFormat
+++ b/lucene/codecs/src/resources/META-INF/services/org.apache.lucene.codecs.PostingsFormat
@@ -18,4 +18,4 @@ org.apache.lucene.codecs.bloom.BloomFilteringPostingsFormat
org.apache.lucene.codecs.memory.DirectPostingsFormat
org.apache.lucene.codecs.memory.FSTOrdPostingsFormat
org.apache.lucene.codecs.memory.FSTPostingsFormat
-org.apache.lucene.codecs.memory.MemoryPostingsFormat
+
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/codecs/src/test/org/apache/lucene/codecs/memory/TestMemoryDocValuesFormat.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/test/org/apache/lucene/codecs/memory/TestMemoryDocValuesFormat.java b/lucene/codecs/src/test/org/apache/lucene/codecs/memory/TestMemoryDocValuesFormat.java
deleted file mode 100644
index 1c83eec..0000000
--- a/lucene/codecs/src/test/org/apache/lucene/codecs/memory/TestMemoryDocValuesFormat.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.lucene.codecs.memory;
-
-
-import org.apache.lucene.codecs.Codec;
-import org.apache.lucene.index.BaseCompressingDocValuesFormatTestCase;
-import org.apache.lucene.util.TestUtil;
-
-/**
- * Tests MemoryDocValuesFormat
- */
-public class TestMemoryDocValuesFormat extends BaseCompressingDocValuesFormatTestCase {
- private final Codec codec = TestUtil.alwaysDocValuesFormat(new MemoryDocValuesFormat());
-
- @Override
- protected Codec getCodec() {
- return codec;
- }
-
- @Override
- protected boolean codecAcceptsHugeBinaryValues(String field) {
- return false;
- }
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/codecs/src/test/org/apache/lucene/codecs/memory/TestMemoryPostingsFormat.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/test/org/apache/lucene/codecs/memory/TestMemoryPostingsFormat.java b/lucene/codecs/src/test/org/apache/lucene/codecs/memory/TestMemoryPostingsFormat.java
deleted file mode 100644
index 3a56bf5..0000000
--- a/lucene/codecs/src/test/org/apache/lucene/codecs/memory/TestMemoryPostingsFormat.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.lucene.codecs.memory;
-
-
-import org.apache.lucene.codecs.Codec;
-import org.apache.lucene.index.BasePostingsFormatTestCase;
-import org.apache.lucene.util.TestUtil;
-
-/**
- * Tests MemoryPostingsFormat
- */
-public class TestMemoryPostingsFormat extends BasePostingsFormatTestCase {
- // TODO: randomize doPack
- private final Codec codec = TestUtil.alwaysPostingsFormat(new MemoryPostingsFormat());
-
- @Override
- protected Codec getCodec() {
- return codec;
- }
-}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java b/lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java
index 2795679..47b6921 100644
--- a/lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java
+++ b/lucene/core/src/test/org/apache/lucene/TestExternalCodecs.java
@@ -42,13 +42,10 @@ public class TestExternalCodecs extends LuceneTestCase {
private final PostingsFormat ramFormat = PostingsFormat.forName("RAMOnly");
private final PostingsFormat defaultFormat = TestUtil.getDefaultPostingsFormat();
- private final PostingsFormat memoryFormat = PostingsFormat.forName("Memory");
@Override
public PostingsFormat getPostingsFormatForField(String field) {
- if (field.equals("field2") || field.equals("id")) {
- return memoryFormat;
- } else if (field.equals("field1")) {
+ if (field.equals("field2") || field.equals("field1") || field.equals("id")) {
return defaultFormat;
} else {
return ramFormat;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java b/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java
index 578b218..df94a90 100644
--- a/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java
+++ b/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java
@@ -89,7 +89,7 @@ public class TestPerFieldDocValuesFormat extends BaseDocValuesFormatTestCase {
// we don't use RandomIndexWriter because it might add more docvalues than we expect !!!!1
IndexWriterConfig iwc = newIndexWriterConfig(analyzer);
final DocValuesFormat fast = TestUtil.getDefaultDocValuesFormat();
- final DocValuesFormat slow = DocValuesFormat.forName("Memory");
+ final DocValuesFormat slow = DocValuesFormat.forName("Direct");
iwc.setCodec(new AssertingCodec() {
@Override
public DocValuesFormat getDocValuesFormatForField(String field) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat2.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat2.java b/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat2.java
index 84544bc..f72ffcc 100644
--- a/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat2.java
+++ b/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldPostingsFormat2.java
@@ -33,7 +33,6 @@ import org.apache.lucene.codecs.PostingsFormat;
import org.apache.lucene.codecs.asserting.AssertingCodec;
import org.apache.lucene.codecs.blockterms.LuceneVarGapFixedInterval;
import org.apache.lucene.codecs.memory.DirectPostingsFormat;
-import org.apache.lucene.codecs.memory.MemoryPostingsFormat;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
@@ -165,7 +164,7 @@ public class TestPerFieldPostingsFormat2 extends LuceneTestCase {
//((LogMergePolicy) iwconf.getMergePolicy()).setMergeFactor(10);
iwconf.setMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH);
- iwconf.setCodec(new MockCodec2()); // uses standard for field content
+ iwconf.setCodec(new MockCodec()); // uses standard for field content
writer = newWriter(dir, iwconf);
// swap in new codec for currently written segments
if (VERBOSE) {
@@ -218,24 +217,7 @@ public class TestPerFieldPostingsFormat2 extends LuceneTestCase {
public static class MockCodec extends AssertingCodec {
final PostingsFormat luceneDefault = TestUtil.getDefaultPostingsFormat();
final PostingsFormat direct = new DirectPostingsFormat();
- final PostingsFormat memory = new MemoryPostingsFormat();
-
- @Override
- public PostingsFormat getPostingsFormatForField(String field) {
- if (field.equals("id")) {
- return direct;
- } else if (field.equals("content")) {
- return memory;
- } else {
- return luceneDefault;
- }
- }
- }
- public static class MockCodec2 extends AssertingCodec {
- final PostingsFormat luceneDefault = TestUtil.getDefaultPostingsFormat();
- final PostingsFormat direct = new DirectPostingsFormat();
-
@Override
public PostingsFormat getPostingsFormatForField(String field) {
if (field.equals("id")) {
@@ -287,9 +269,9 @@ public class TestPerFieldPostingsFormat2 extends LuceneTestCase {
@Override
public PostingsFormat getPostingsFormatForField(String field) {
if ("id".equals(field)) {
- return new MemoryPostingsFormat();
+ return new DirectPostingsFormat();
} else if ("date".equals(field)) {
- return new MemoryPostingsFormat();
+ return new DirectPostingsFormat();
} else {
return super.getPostingsFormatForField(field);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java b/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java
index 4662480..e0d5bd3 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java
@@ -33,7 +33,7 @@ import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TimeUnits;
import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
-@SuppressCodecs({"SimpleText", "Memory", "Direct"})
+@SuppressCodecs({"SimpleText", "Direct"})
@TimeoutSuite(millis = 80 * TimeUnits.HOUR) // effectively no limit
// The six hour time was achieved on a Linux 3.13 system with these specs:
// 3-core AMD at 2.5Ghz, 12 GB RAM, 5GB test heap, 2 test JVMs, 2TB SATA.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java b/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java
index dbbe271..91406c6 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java
@@ -35,7 +35,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import org.apache.lucene.util.TestUtil;
import org.apache.lucene.util.TimeUnits;
-@SuppressCodecs({"SimpleText", "Memory", "Direct"})
+@SuppressCodecs({"SimpleText", "Direct"})
@TimeoutSuite(millis = 80 * TimeUnits.HOUR) // effectively no limit
@Monster("Takes ~30min")
@SuppressSysoutChecks(bugUrl = "Stuff gets printed")
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java b/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java
index 046ac6f..8587f82 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java
@@ -31,7 +31,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
-@SuppressCodecs({"SimpleText", "Memory", "Direct"})
+@SuppressCodecs({"SimpleText", "Direct"})
@TimeoutSuite(millis = 8 * TimeUnits.HOUR)
// The two hour time was achieved on a Linux 3.13 system with these specs:
// 3-core AMD at 2.5Ghz, 12 GB RAM, 5GB test heap, 2 test JVMs, 2TB SATA.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BPoints.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BPoints.java b/lucene/core/src/test/org/apache/lucene/index/Test2BPoints.java
index 2e32773..a12f31c 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BPoints.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BPoints.java
@@ -35,7 +35,7 @@ import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
//
// or: python -u /l/util/src/python/repeatLuceneTest.py -heap 6g -once -nolog -tmpDir /b/tmp -logDir /l/logs Test2BPoints.test2D -verbose
-@SuppressCodecs({ "SimpleText", "Memory", "Direct", "Compressing" })
+@SuppressCodecs({ "SimpleText", "Direct", "Compressing" })
@TimeoutSuite(millis = 365 * 24 * TimeUnits.HOUR) // hopefully ~1 year is long enough ;)
@Monster("takes at least 4 hours and consumes many GB of temp disk space")
public class Test2BPoints extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java b/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java
index d65c95c..d6687bf 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java
@@ -36,7 +36,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
* Test indexes ~82M docs with 52 positions each, so you get > Integer.MAX_VALUE positions
* @lucene.experimental
*/
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
@Monster("uses lots of space and takes a few minutes")
public class Test2BPositions extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java b/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
index 15a931f..0744971 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
@@ -35,7 +35,7 @@ import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
* Test indexes ~82M docs with 26 terms each, so you get > Integer.MAX_VALUE terms/docs pairs
* @lucene.experimental
*/
-@SuppressCodecs({ "SimpleText", "Memory", "Direct", "Compressing" })
+@SuppressCodecs({ "SimpleText", "Direct", "Compressing" })
@TimeoutSuite(millis = 4 * TimeUnits.HOUR)
public class Test2BPostings extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java b/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java
index ae935d6..7e8731a 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java
@@ -42,7 +42,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
* so you get > Integer.MAX_VALUE postings data for the term
* @lucene.experimental
*/
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
@Monster("takes ~20GB-30GB of space and 10 minutes")
public class Test2BPostingsBytes extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesFixedSorted.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesFixedSorted.java b/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesFixedSorted.java
index 988e3f7..a41dda9 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesFixedSorted.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesFixedSorted.java
@@ -32,7 +32,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
-@SuppressCodecs({"SimpleText", "Memory", "Direct"})
+@SuppressCodecs({"SimpleText", "Direct"})
@TimeoutSuite(millis = 80 * TimeUnits.HOUR) // effectively no limit
// The six hour time was achieved on a Linux 3.13 system with these specs:
// 3-core AMD at 2.5Ghz, 12 GB RAM, 5GB test heap, 2 test JVMs, 2TB SATA.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesOrds.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesOrds.java b/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesOrds.java
index 7448738..1183728 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesOrds.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValuesOrds.java
@@ -32,7 +32,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
-@SuppressCodecs({"SimpleText", "Memory", "Direct"})
+@SuppressCodecs({"SimpleText", "Direct"})
@TimeoutSuite(millis = 80 * TimeUnits.HOUR) // effectively no limit
// The six hour time was achieved on a Linux 3.13 system with these specs:
// 3-core AMD at 2.5Ghz, 12 GB RAM, 5GB test heap, 2 test JVMs, 2TB SATA.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java b/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
index 2e962b6..4b6a456 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
@@ -55,7 +55,7 @@ import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
//
// ant test -Dtests.monster=true -Dtests.heapsize=8g -Dtests.codec=Lucene62 -Dtestcase=Test2BTerms
//
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
@Monster("very slow, use 5g minimum heap")
@TimeoutSuite(millis = 80 * TimeUnits.HOUR) // effectively no limit
@SuppressSysoutChecks(bugUrl = "Stuff gets printed")
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java b/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
index 48a28e2..0df7ac8 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
@@ -28,7 +28,7 @@ import org.apache.lucene.codecs.Codec;
import org.apache.lucene.codecs.FilterCodec;
import org.apache.lucene.codecs.PostingsFormat;
import org.apache.lucene.codecs.asserting.AssertingCodec;
-import org.apache.lucene.codecs.memory.MemoryPostingsFormat;
+import org.apache.lucene.codecs.memory.DirectPostingsFormat;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
@@ -1088,14 +1088,11 @@ public class TestAddIndexes extends LuceneTestCase {
private static final class CustomPerFieldCodec extends AssertingCodec {
private final PostingsFormat directFormat = PostingsFormat.forName("Direct");
private final PostingsFormat defaultFormat = TestUtil.getDefaultPostingsFormat();
- private final PostingsFormat memoryFormat = PostingsFormat.forName("Memory");
@Override
public PostingsFormat getPostingsFormatForField(String field) {
if (field.equals("id")) {
return directFormat;
- } else if (field.equals("content")) {
- return memoryFormat;
} else {
return defaultFormat;
}
@@ -1164,7 +1161,7 @@ public class TestAddIndexes extends LuceneTestCase {
{
Directory dir = newDirectory();
IndexWriterConfig conf = newIndexWriterConfig(new MockAnalyzer(random()));
- conf.setCodec(TestUtil.alwaysPostingsFormat(new MemoryPostingsFormat()));
+ conf.setCodec(TestUtil.alwaysPostingsFormat(new DirectPostingsFormat()));
IndexWriter w = new IndexWriter(dir, conf);
expectThrows(IllegalArgumentException.class, () -> {
w.addIndexes(toAdd);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java b/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java
index 6214e4c..2816509 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java
@@ -40,7 +40,7 @@ import org.apache.lucene.util.TestUtil;
* totalTermFreq of its integer value, and checks that the totalTermFreq is correct.
*/
// TODO: somehow factor this with BagOfPostings? it's almost the same
-@SuppressCodecs({"Direct", "Memory"}) // at night this makes like 200k/300k docs and will make Direct's heart beat!
+@SuppressCodecs({"Direct"}) // at night this makes like 200k/300k docs and will make Direct's heart beat!
public class TestBagOfPositions extends LuceneTestCase {
public void test() throws Exception {
List<String> postingsList = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java b/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java
index 8cd2551..18e011c 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java
@@ -38,7 +38,7 @@ import org.apache.lucene.util.TestUtil;
* Simple test that adds numeric terms, where each term has the
* docFreq of its integer value, and checks that the docFreq is correct.
*/
-@SuppressCodecs({"Direct", "Memory"}) // at night this makes like 200k/300k docs and will make Direct's heart beat!
+@SuppressCodecs({"Direct"}) // at night this makes like 200k/300k docs and will make Direct's heart beat!
public class TestBagOfPostings extends LuceneTestCase {
public void test() throws Exception {
List<String> postingsList = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecsAtNight.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecsAtNight.java b/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecsAtNight.java
index 41143b2..1839c22 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecsAtNight.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecsAtNight.java
@@ -24,7 +24,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
* Just like TestDuelingCodecs, only with a lot more documents.
*/
@Nightly
-@SuppressCodecs({"Memory", "Direct"}) // it can be too much for these codecs
+@SuppressCodecs({"Direct"}) // it can be too much for these codecs
public class TestDuelingCodecsAtNight extends TestDuelingCodecs {
// use a big number of documents
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
index e94621a..a7c2c9b 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
@@ -177,7 +177,6 @@ public class TestIndexWriterCommit extends LuceneTestCase {
final String idFormat = TestUtil.getPostingsFormat("id");
final String contentFormat = TestUtil.getPostingsFormat("content");
- assumeFalse("This test cannot run with Memory codec", idFormat.equals("Memory") || contentFormat.equals("Memory"));
MockDirectoryWrapper dir = newMockDirectory();
Analyzer analyzer;
if (random().nextBoolean()) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
index fe951f3..660f88b 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
@@ -994,7 +994,6 @@ public class TestIndexWriterDelete extends LuceneTestCase {
// TODO: move this test to its own class and just @SuppressCodecs?
// TODO: is it enough to just use newFSDirectory?
final String fieldFormat = TestUtil.getPostingsFormat("field");
- assumeFalse("This test cannot run with Memory codec", fieldFormat.equals("Memory"));
assumeFalse("This test cannot run with SimpleText codec", fieldFormat.equals("SimpleText"));
assumeFalse("This test cannot run with Direct codec", fieldFormat.equals("Direct"));
final Random r = random();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMaxDocs.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMaxDocs.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMaxDocs.java
index 4fd7550..237ad38 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMaxDocs.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMaxDocs.java
@@ -39,7 +39,7 @@ import org.apache.lucene.util.TestUtil;
import org.apache.lucene.util.TimeUnits;
import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
@TimeoutSuite(millis = 8 * TimeUnits.HOUR)
public class TestIndexWriterMaxDocs extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
index d225f43..3629721 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
@@ -162,7 +162,6 @@ public class TestIndexWriterOnDiskFull extends LuceneTestCase {
final String idFormat = TestUtil.getPostingsFormat("id");
final String contentFormat = TestUtil.getPostingsFormat("content");
- assumeFalse("This test cannot run with Memory codec", idFormat.equals("Memory") || contentFormat.equals("Memory"));
int START_COUNT = 57;
int NUM_DIR = TEST_NIGHTLY ? 50 : 5;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java b/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
index ff79e5e..3673887 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
@@ -130,7 +130,6 @@ public class TestLazyProxSkipping extends LuceneTestCase {
public void testLazySkipping() throws IOException {
final String fieldFormat = TestUtil.getPostingsFormat(this.field);
- assumeFalse("This test cannot run with Memory postings format", fieldFormat.equals("Memory"));
assumeFalse("This test cannot run with Direct postings format", fieldFormat.equals("Direct"));
assumeFalse("This test cannot run with SimpleText postings format", fieldFormat.equals("SimpleText"));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java b/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
index bafea38..20c7f90e 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
@@ -35,7 +35,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
public class TestLongPostings extends LuceneTestCase {
// Produces a realistic unicode random string that
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java b/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java
index 1b55653..d8c0b49 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestNRTThreads.java
@@ -30,7 +30,7 @@ import org.junit.Before;
// - mix in forceMerge, addIndexes
// - randomoly mix in non-congruent docs
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
public class TestNRTThreads extends ThreadedIndexingAndSearchingTestCase {
private boolean useNonNrtReaders = true;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestNorms.java b/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
index 805c7e5..4100885 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
@@ -43,7 +43,7 @@ import org.apache.lucene.util.TestUtil;
* Test that norms info is preserved during index life - including
* separate norms, addDocument, addIndexes, forceMerge.
*/
-@SuppressCodecs({ "Memory", "Direct", "SimpleText" })
+@SuppressCodecs({ "Direct", "SimpleText" })
@Slow
public class TestNorms extends LuceneTestCase {
static final String BYTE_TEST_FIELD = "normsTestByte";
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java b/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
index 5a2c82f..10e714e 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestRollingUpdates.java
@@ -21,7 +21,7 @@ import java.util.Random;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.codecs.Codec;
-import org.apache.lucene.codecs.memory.MemoryPostingsFormat;
+import org.apache.lucene.codecs.memory.DirectPostingsFormat;
import org.apache.lucene.document.*;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
@@ -42,9 +42,9 @@ public class TestRollingUpdates extends LuceneTestCase {
final LineFileDocs docs = new LineFileDocs(random);
- //provider.register(new MemoryCodec());
if (random().nextBoolean()) {
- Codec.setDefault(TestUtil.alwaysPostingsFormat(new MemoryPostingsFormat(random().nextBoolean(), random.nextFloat())));
+ Codec.setDefault(TestUtil.alwaysPostingsFormat(
+ new DirectPostingsFormat()));
}
MockAnalyzer analyzer = new MockAnalyzer(random());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java b/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
index 96c42f3..31fe18a 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestTermsEnum.java
@@ -46,7 +46,7 @@ import org.apache.lucene.util.automaton.Automaton;
import org.apache.lucene.util.automaton.CompiledAutomaton;
import org.apache.lucene.util.automaton.RegExp;
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
public class TestTermsEnum extends LuceneTestCase {
public void test() throws Exception {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java b/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
index 7a7b0ac..c1157ff 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
@@ -47,7 +47,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.ThreadInterruptedException;
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
public class TestControlledRealTimeReopenThread extends ThreadedIndexingAndSearchingTestCase {
// Not guaranteed to reflect deletes:
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java b/lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java
index 0008dc7..ec73368 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestSearchWithThreads.java
@@ -29,7 +29,7 @@ import org.apache.lucene.store.Directory;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
public class TestSearchWithThreads extends LuceneTestCase {
int NUM_DOCS;
static final int NUM_SEARCH_THREADS = 5;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/search/TestSearcherManager.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestSearcherManager.java b/lucene/core/src/test/org/apache/lucene/search/TestSearcherManager.java
index d74d5ac..b70784c 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestSearcherManager.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestSearcherManager.java
@@ -50,7 +50,7 @@ import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.NamedThreadFactory;
import org.apache.lucene.util.TestUtil;
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
public class TestSearcherManager extends ThreadedIndexingAndSearchingTestCase {
boolean warmCalled;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java b/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java
index 768ee0e..ebc7062 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java
@@ -41,7 +41,7 @@ import org.apache.lucene.util.TestUtil;
// - test pulling docs in 2nd round trip...
// - filter too
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
public class TestShardSearching extends ShardSearchingTestBase {
private static class PreviousSearchState {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/search/TestSortedSetSelector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestSortedSetSelector.java b/lucene/core/src/test/org/apache/lucene/search/TestSortedSetSelector.java
index 82abf12..16daf2b 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestSortedSetSelector.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestSortedSetSelector.java
@@ -29,7 +29,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
/** Tests for SortedSetSortField selectors other than MIN,
* these require optional codec support (random access to ordinals) */
-@SuppressCodecs({"Memory", "SimpleText"}) // TODO: fix MemoryDV to support random access to ordinals
+@SuppressCodecs({"SimpleText"})
public class TestSortedSetSelector extends LuceneTestCase {
public void testMax() throws Exception {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java b/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
index 6f704c9..f3109e2 100644
--- a/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
+++ b/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
@@ -81,7 +81,7 @@ import static org.apache.lucene.util.fst.FSTTester.getRandomString;
import static org.apache.lucene.util.fst.FSTTester.simpleRandomString;
import static org.apache.lucene.util.fst.FSTTester.toIntsRef;
-@SuppressCodecs({ "SimpleText", "Memory", "Direct" })
+@SuppressCodecs({ "SimpleText", "Direct" })
@Slow
public class TestFSTs extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/misc/src/test/org/apache/lucene/search/TestInetAddressRangeQueries.java
----------------------------------------------------------------------
diff --git a/lucene/misc/src/test/org/apache/lucene/search/TestInetAddressRangeQueries.java b/lucene/misc/src/test/org/apache/lucene/search/TestInetAddressRangeQueries.java
index 8f0c4ca..b7932bd 100644
--- a/lucene/misc/src/test/org/apache/lucene/search/TestInetAddressRangeQueries.java
+++ b/lucene/misc/src/test/org/apache/lucene/search/TestInetAddressRangeQueries.java
@@ -28,7 +28,7 @@ import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
/**
* Random testing for {@link InetAddressRange}
*/
-@SuppressCodecs({"Direct", "Memory"})
+@SuppressCodecs({"Direct"})
public class TestInetAddressRangeQueries extends BaseRangeFieldQueryTestCase {
private static final String FIELD_NAME = "ipRangeField";
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/SimpleServer.java
----------------------------------------------------------------------
diff --git a/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/SimpleServer.java b/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/SimpleServer.java
index 20c3f61..6f95c5b 100644
--- a/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/SimpleServer.java
+++ b/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/SimpleServer.java
@@ -51,7 +51,7 @@ import org.apache.lucene.util.TestUtil;
/** Child process with silly naive TCP socket server to handle
* between-node commands, launched for each node by TestNRTReplication. */
-@SuppressCodecs({"MockRandom", "Memory", "Direct", "SimpleText"})
+@SuppressCodecs({"MockRandom", "Direct", "SimpleText"})
@SuppressSysoutChecks(bugUrl = "Stuff gets printed, important stuff for debugging a failure")
@SuppressForbidden(reason = "We need Unsafe to actually crush :-)")
public class SimpleServer extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestNRTReplication.java
----------------------------------------------------------------------
diff --git a/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestNRTReplication.java b/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestNRTReplication.java
index a2e7cf9..05f02cc 100644
--- a/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestNRTReplication.java
+++ b/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestNRTReplication.java
@@ -44,7 +44,7 @@ import org.apache.lucene.util.TestUtil;
import com.carrotsearch.randomizedtesting.SeedUtils;
// MockRandom's .sd file has no index header/footer:
-@SuppressCodecs({"MockRandom", "Memory", "Direct", "SimpleText"})
+@SuppressCodecs({"MockRandom", "Direct", "SimpleText"})
@SuppressSysoutChecks(bugUrl = "Stuff gets printed, important stuff for debugging a failure")
public class TestNRTReplication extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestStressNRTReplication.java
----------------------------------------------------------------------
diff --git a/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestStressNRTReplication.java b/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestStressNRTReplication.java
index 045bb38..d11b22b 100644
--- a/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestStressNRTReplication.java
+++ b/lucene/replicator/src/test/org/apache/lucene/replicator/nrt/TestStressNRTReplication.java
@@ -112,7 +112,7 @@ import com.carrotsearch.randomizedtesting.SeedUtils;
*/
// MockRandom's .sd file has no index header/footer:
-@SuppressCodecs({"MockRandom", "Memory", "Direct", "SimpleText"})
+@SuppressCodecs({"MockRandom", "Direct", "SimpleText"})
@SuppressSysoutChecks(bugUrl = "Stuff gets printed, important stuff for debugging a failure")
public class TestStressNRTReplication extends LuceneTestCase {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
index a87148f..e4897c5 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
@@ -549,9 +549,7 @@ public abstract class BaseTokenStreamTestCase extends LuceneTestCase {
Directory dir = null;
RandomIndexWriter iw = null;
final String postingsFormat = TestUtil.getPostingsFormat("dummy");
- boolean codecOk = iterations * maxWordLength < 100000 ||
- !(postingsFormat.equals("Memory") ||
- postingsFormat.equals("SimpleText"));
+ boolean codecOk = iterations * maxWordLength < 100000 || !(postingsFormat.equals("SimpleText"));
if (rarely(random) && codecOk) {
dir = newFSDirectory(createTempDir("bttc"));
iw = new RandomIndexWriter(new Random(seed), dir, a);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/test-framework/src/java/org/apache/lucene/geo/BaseGeoPointTestCase.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/geo/BaseGeoPointTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/geo/BaseGeoPointTestCase.java
index 6b39930..ea62178 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/geo/BaseGeoPointTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/geo/BaseGeoPointTestCase.java
@@ -627,7 +627,6 @@ public abstract class BaseGeoPointTestCase extends LuceneTestCase {
@Nightly
public void testRandomBig() throws Exception {
assumeFalse("Direct codec can OOME on this test", TestUtil.getDocValuesFormat(FIELD_NAME).equals("Direct"));
- assumeFalse("Memory codec can OOME on this test", TestUtil.getDocValuesFormat(FIELD_NAME).equals("Memory"));
doTestRandom(200000);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java b/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java
index df28105..3588a8e 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/index/RandomCodec.java
@@ -46,8 +46,6 @@ import org.apache.lucene.codecs.memory.DirectDocValuesFormat;
import org.apache.lucene.codecs.memory.DirectPostingsFormat;
import org.apache.lucene.codecs.memory.FSTOrdPostingsFormat;
import org.apache.lucene.codecs.memory.FSTPostingsFormat;
-import org.apache.lucene.codecs.memory.MemoryDocValuesFormat;
-import org.apache.lucene.codecs.memory.MemoryPostingsFormat;
import org.apache.lucene.codecs.mockrandom.MockRandomPostingsFormat;
import org.apache.lucene.index.PointValues.IntersectVisitor;
import org.apache.lucene.store.Directory;
@@ -205,14 +203,11 @@ public class RandomCodec extends AssertingCodec {
new LuceneVarGapFixedInterval(TestUtil.nextInt(random, 1, 1000)),
new LuceneVarGapDocFreqInterval(TestUtil.nextInt(random, 1, 100), TestUtil.nextInt(random, 1, 1000)),
TestUtil.getDefaultPostingsFormat(),
- new AssertingPostingsFormat(),
- new MemoryPostingsFormat(true, random.nextFloat()),
- new MemoryPostingsFormat(false, random.nextFloat()));
+ new AssertingPostingsFormat());
addDocValues(avoidCodecs,
TestUtil.getDefaultDocValuesFormat(),
new DirectDocValuesFormat(), // maybe not a great idea...
- new MemoryDocValuesFormat(),
TestUtil.getDefaultDocValuesFormat(),
new AssertingDocValuesFormat());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java b/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
index 2969788..d8960a1 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
@@ -980,7 +980,7 @@ public final class TestUtil {
// TODO: remove this, push this test to Lucene40/Lucene42 codec tests
public static boolean fieldSupportsHugeBinaryDocValues(String field) {
String dvFormat = getDocValuesFormat(field);
- if (dvFormat.equals("Lucene40") || dvFormat.equals("Lucene42") || dvFormat.equals("Memory")) {
+ if (dvFormat.equals("Lucene40") || dvFormat.equals("Lucene42")) {
return false;
}
return true;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index a51a22e..8b443f7 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -41,6 +41,10 @@ Upgrade Notes
method signatures was required to fix it. Third party components that use this API
need to be updated. (Eros Taborelli, Erick Erickson, ab)
+* LUCENE-8267: Memory codecs have been removed from the codebase (MemoryPostings,
+ MemoryDocValues). If you used postingsFormat="Memory" or docValuesFormat="Memory"
+ switch to "Direct" instead. (Dawid Weiss)
+
================== 7.4.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/85c00e77/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml b/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml
index a90cf9c..e259740 100644
--- a/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/schema_codec.xml
@@ -16,11 +16,10 @@
limitations under the License.
-->
<schema name="codec" version="1.2">
- <fieldType name="string_direct" class="solr.StrField" postingsFormat="Direct"/>
+ <fieldType name="string_direct" class="solr.StrField" postingsFormat="Direct" docValuesFormat="Direct"/>
<fieldType name="string_standard" class="solr.StrField" postingsFormat="Lucene50"/>
<fieldType name="string_disk" class="solr.StrField" docValuesFormat="Lucene70"/>
- <fieldType name="string_memory" class="solr.StrField" docValuesFormat="Memory"/>
<fieldType name="string" class="solr.StrField"/>
@@ -39,7 +38,6 @@
<field name="string_standard_f" type="string_standard" indexed="true" stored="true"/>
<field name="string_disk_f" type="string_disk" indexed="false" stored="false" docValues="true" default=""/>
- <field name="string_memory_f" type="string_memory" indexed="false" stored="false" docValues="true" default=""/>
<field name="string_f" type="string" indexed="true" stored="true" docValues="true" required="true"/>
<field name="text" type="text_general" indexed="true" stored="true"/>
@@ -48,7 +46,6 @@
<dynamicField name="*_standard" type="string_standard" indexed="true" stored="true"/>
<dynamicField name="*_disk" type="string_disk" indexed="false" stored="false" docValues="true"/>
- <dynamicField name="*_memory" type="string_memory" indexed="false" stored="false" docValues="true"/>
<uniqueKey>string_f</uniqueKey>
</schema>