mirror of https://github.com/apache/lucene.git
LUCENE-2144: fix InstantiatedIndex to handle termDocs(null)
git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@889432 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
121dbb58ba
commit
00eadcb986
|
@ -0,0 +1,34 @@
|
|||
/**
|
||||
* 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.store.instantiated;
|
||||
|
||||
import org.apache.lucene.index.AbstractAllTermDocs;
|
||||
|
||||
class InstantiatedAllTermDocs extends AbstractAllTermDocs {
|
||||
|
||||
private InstantiatedIndexReader reader;
|
||||
|
||||
InstantiatedAllTermDocs(InstantiatedIndexReader reader) {
|
||||
super(reader.maxDoc());
|
||||
this.reader = reader;
|
||||
}
|
||||
|
||||
public boolean isDeleted(int doc) {
|
||||
return reader.isDeleted(doc);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
/**
|
||||
* 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.index;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public abstract class AbstractAllTermDocs implements TermDocs {
|
||||
|
||||
protected int maxDoc;
|
||||
protected int doc = -1;
|
||||
|
||||
protected AbstractAllTermDocs(int maxDoc) {
|
||||
this.maxDoc = maxDoc;
|
||||
}
|
||||
|
||||
public void seek(Term term) throws IOException {
|
||||
if (term==null) {
|
||||
doc = -1;
|
||||
} else {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
public void seek(TermEnum termEnum) throws IOException {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public int doc() {
|
||||
return doc;
|
||||
}
|
||||
|
||||
public int freq() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public boolean next() throws IOException {
|
||||
return skipTo(doc+1);
|
||||
}
|
||||
|
||||
public int read(int[] docs, int[] freqs) throws IOException {
|
||||
final int length = docs.length;
|
||||
int i = 0;
|
||||
while (i < length && doc < maxDoc) {
|
||||
if (!isDeleted(doc)) {
|
||||
docs[i] = doc;
|
||||
freqs[i] = 1;
|
||||
++i;
|
||||
}
|
||||
doc++;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
public boolean skipTo(int target) throws IOException {
|
||||
doc = target;
|
||||
while (doc < maxDoc) {
|
||||
if (!isDeleted(doc)) {
|
||||
return true;
|
||||
}
|
||||
doc++;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
}
|
||||
|
||||
public abstract boolean isDeleted(int doc);
|
||||
}
|
Loading…
Reference in New Issue