You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2008/12/01 19:50:46 UTC
svn commit: r722174 - in /lucene/java/trunk: ./
contrib/miscellaneous/src/java/org/apache/lucene/misc/
contrib/queries/src/java/org/apache/lucene/search/
src/java/org/apache/lucene/search/
Author: mikemccand
Date: Mon Dec 1 10:50:45 2008
New Revision: 722174
URL: http://svn.apache.org/viewvc?rev=722174&view=rev
Log:
LUCENE-1296: add protected method CachingWrapperFilter.docIdSetToCache
Modified:
lucene/java/trunk/CHANGES.txt
lucene/java/trunk/contrib/miscellaneous/src/java/org/apache/lucene/misc/ChainedFilter.java
lucene/java/trunk/contrib/queries/src/java/org/apache/lucene/search/BooleanFilter.java
lucene/java/trunk/src/java/org/apache/lucene/search/CachingWrapperFilter.java
Modified: lucene/java/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?rev=722174&r1=722173&r2=722174&view=diff
==============================================================================
--- lucene/java/trunk/CHANGES.txt (original)
+++ lucene/java/trunk/CHANGES.txt Mon Dec 1 10:50:45 2008
@@ -105,6 +105,10 @@
slower first-time usage due to populating the FieldCache. (Tim
Sturge via Mike McCandless)
+ 8. LUCENE-1296: add protected method CachingWrapperFilter.docIdSetToCache
+ to allow subclasses to choose which DocIdSet implementation to use
+ (Paul Elschot via Mike McCandless)
+
Optimizations
1. LUCENE-1427: Fixed QueryWrapperFilter to not waste time computing
Modified: lucene/java/trunk/contrib/miscellaneous/src/java/org/apache/lucene/misc/ChainedFilter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/miscellaneous/src/java/org/apache/lucene/misc/ChainedFilter.java?rev=722174&r1=722173&r2=722174&view=diff
==============================================================================
--- lucene/java/trunk/contrib/miscellaneous/src/java/org/apache/lucene/misc/ChainedFilter.java (original)
+++ lucene/java/trunk/contrib/miscellaneous/src/java/org/apache/lucene/misc/ChainedFilter.java Mon Dec 1 10:50:45 2008
@@ -176,8 +176,13 @@
}
return result;
}
-
- /** Provide a SortedVIntList when it is definitely smaller than an OpenBitSet */
+
+ // TODO: in 3.0, instead of removing this deprecated
+ // method, make it a no-op and mark it final
+ /** Provide a SortedVIntList when it is definitely
+ * smaller than an OpenBitSet
+ * @deprecated Either use CachingWrapperFilter, or
+ * switch to a different DocIdSet implementation yourself. */
protected DocIdSet finalResult(OpenBitSetDISI result, int maxDocs) {
return (result.cardinality() < (maxDocs / 9))
? (DocIdSet) new SortedVIntList(result)
Modified: lucene/java/trunk/contrib/queries/src/java/org/apache/lucene/search/BooleanFilter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/queries/src/java/org/apache/lucene/search/BooleanFilter.java?rev=722174&r1=722173&r2=722174&view=diff
==============================================================================
--- lucene/java/trunk/contrib/queries/src/java/org/apache/lucene/search/BooleanFilter.java (original)
+++ lucene/java/trunk/contrib/queries/src/java/org/apache/lucene/search/BooleanFilter.java Mon Dec 1 10:50:45 2008
@@ -19,11 +19,9 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.BitSet;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.BooleanClause.Occur;
-import org.apache.lucene.util.DocIdBitSet;
import org.apache.lucene.util.OpenBitSet;
import org.apache.lucene.util.OpenBitSetDISI;
import org.apache.lucene.util.SortedVIntList;
@@ -116,7 +114,12 @@
return emptyDocIdSet;
}
- /** Provide a SortedVIntList when it is definitely smaller than an OpenBitSet */
+ // TODO: in 3.0, instead of removing this deprecated
+ // method, make it a no-op and mark it final
+ /** Provide a SortedVIntList when it is definitely smaller
+ * than an OpenBitSet.
+ * @deprecated Either use CachingWrapperFilter, or
+ * switch to a different DocIdSet implementation yourself. */
protected DocIdSet finalResult(OpenBitSetDISI result, int maxDocs) {
return (result.cardinality() < (maxDocs / 9))
? (DocIdSet) new SortedVIntList(result)
Modified: lucene/java/trunk/src/java/org/apache/lucene/search/CachingWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/search/CachingWrapperFilter.java?rev=722174&r1=722173&r2=722174&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/search/CachingWrapperFilter.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/search/CachingWrapperFilter.java Mon Dec 1 10:50:45 2008
@@ -73,6 +73,14 @@
return bits;
}
+
+ /** Provide the DocIdSet to be cached, using the DocIdSet provided
+ * by the wrapped Filter.
+ * This implementation returns the given DocIdSet.
+ */
+ protected DocIdSet docIdSetToCache(DocIdSet docIdSet, IndexReader reader) {
+ return docIdSet;
+ }
public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
if (cache == null) {
@@ -91,7 +99,7 @@
return new DocIdBitSet((BitSet) cached);
}
- final DocIdSet docIdSet = filter.getDocIdSet(reader);
+ final DocIdSet docIdSet = docIdSetToCache(filter.getDocIdSet(reader), reader);
synchronized (cache) { // update cache
cache.put(reader, docIdSet);