diff --git a/csl.api/nbproject/project.xml b/csl.api/nbproject/project.xml --- a/csl.api/nbproject/project.xml +++ b/csl.api/nbproject/project.xml @@ -37,8 +37,8 @@ - 1 - 2.1 + 3 + 3.0 diff --git a/java.hints/nbproject/project.xml b/java.hints/nbproject/project.xml --- a/java.hints/nbproject/project.xml +++ b/java.hints/nbproject/project.xml @@ -107,8 +107,8 @@ - 1 - 2.9 + 3 + 3.0 diff --git a/java.source/nbproject/project.xml b/java.source/nbproject/project.xml --- a/java.source/nbproject/project.xml +++ b/java.source/nbproject/project.xml @@ -106,8 +106,8 @@ - 1 - 2.12 + 3 + 3.0 diff --git a/java.source/src/org/netbeans/modules/java/source/usages/DocumentUtil.java b/java.source/src/org/netbeans/modules/java/source/usages/DocumentUtil.java --- a/java.source/src/org/netbeans/modules/java/source/usages/DocumentUtil.java +++ b/java.source/src/org/netbeans/modules/java/source/usages/DocumentUtil.java @@ -257,30 +257,30 @@ } caseInsensitiveName = simpleName.toLowerCase(); //XXX: I18N, Locale Document doc = new Document (); - Field field = new Field (FIELD_BINARY_NAME,fileName,Field.Store.YES, Field.Index.NO_NORMS); + Field field = new Field (FIELD_BINARY_NAME,fileName,Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS); doc.add (field); - field = new Field (FIELD_PACKAGE_NAME,pkgName,Field.Store.YES, Field.Index.NO_NORMS); + field = new Field (FIELD_PACKAGE_NAME,pkgName,Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS); doc.add (field); - field = new Field (FIELD_SIMPLE_NAME,simpleName, Field.Store.YES, Field.Index.NO_NORMS); + field = new Field (FIELD_SIMPLE_NAME,simpleName, Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS); doc.add (field); - field = new Field (FIELD_CASE_INSENSITIVE_NAME, caseInsensitiveName, Field.Store.YES, Field.Index.NO_NORMS); + field = new Field (FIELD_CASE_INSENSITIVE_NAME, caseInsensitiveName, Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS); doc.add (field); for (String reference : references) { - field = new Field (FIELD_REFERENCES,reference,Field.Store.NO,Field.Index.NO_NORMS); + field = new Field (FIELD_REFERENCES,reference,Field.Store.NO,Field.Index.NOT_ANALYZED_NO_NORMS); doc.add(field); } if (featureIdents != null) { - field = new Field(FIELD_FEATURE_IDENTS, featureIdents, Field.Store.NO, Field.Index.TOKENIZED); + field = new Field(FIELD_FEATURE_IDENTS, featureIdents, Field.Store.NO, Field.Index.ANALYZED_NO_NORMS); doc.add(field); - field = new Field(FIELD_CASE_INSENSITIVE_FEATURE_IDENTS, featureIdents, Field.Store.NO, Field.Index.TOKENIZED); + field = new Field(FIELD_CASE_INSENSITIVE_FEATURE_IDENTS, featureIdents, Field.Store.NO, Field.Index.ANALYZED_NO_NORMS); doc.add(field); } if (idents != null) { - field = new Field(FIELD_IDENTS, idents, Field.Store.NO, Field.Index.TOKENIZED); + field = new Field(FIELD_IDENTS, idents, Field.Store.NO, Field.Index.ANALYZED_NO_NORMS); doc.add(field); } if (source != null) { - field = new Field (FIELD_SOURCE,source,Field.Store.YES,Field.Index.NO_NORMS); + field = new Field (FIELD_SOURCE,source,Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS); doc.add(field); } return doc; diff --git a/java.sourceui/nbproject/project.xml b/java.sourceui/nbproject/project.xml --- a/java.sourceui/nbproject/project.xml +++ b/java.sourceui/nbproject/project.xml @@ -45,8 +45,8 @@ - 1 - 2.12 + 3 + 3.0 diff --git a/libs.lucene/external/binaries-list b/libs.lucene/external/binaries-list --- a/libs.lucene/external/binaries-list +++ b/libs.lucene/external/binaries-list @@ -1,1 +1,1 @@ -284963A064E39FA33ECBA8E57CC5581067CD81D1 lucene-core-2.9.3.jar +335F7EA0E28A4A1358AA745F4BD2037E8AFE44FC lucene-core-3.0.3.jar diff --git a/libs.lucene/manifest.mf b/libs.lucene/manifest.mf --- a/libs.lucene/manifest.mf +++ b/libs.lucene/manifest.mf @@ -1,4 +1,4 @@ Manifest-Version: 1.0 -OpenIDE-Module: org.netbeans.libs.lucene/1 +OpenIDE-Module: org.netbeans.libs.lucene/3 OpenIDE-Module-Localizing-Bundle: org/netbeans/libs/lucene/Bundle.properties OpenIDE-Module-Implementation-Version: 232 diff --git a/libs.lucene/nbproject/project.properties b/libs.lucene/nbproject/project.properties --- a/libs.lucene/nbproject/project.properties +++ b/libs.lucene/nbproject/project.properties @@ -41,5 +41,5 @@ # made subject to such option by the copyright holder. is.autoload=true -release.external/lucene-core-2.9.3.jar=modules/ext/lucene-core-2.9.3.jar -spec.version.base=2.13.0 +release.external/lucene-core-3.0.3.jar=modules/ext/lucene-core-3.0.3.jar +spec.version.base=3.0.0 diff --git a/libs.lucene/nbproject/project.xml b/libs.lucene/nbproject/project.xml --- a/libs.lucene/nbproject/project.xml +++ b/libs.lucene/nbproject/project.xml @@ -53,8 +53,8 @@ org - ext/lucene-core-2.9.3.jar - external/lucene-core-2.9.3.jar + ext/lucene-core-3.0.3.jar + external/lucene-core-3.0.3.jar diff --git a/maven.hints/nbproject/project.xml b/maven.hints/nbproject/project.xml --- a/maven.hints/nbproject/project.xml +++ b/maven.hints/nbproject/project.xml @@ -62,8 +62,8 @@ - 1 - 2.13 + 3 + 3.0 diff --git a/maven.indexer/nbproject/project.xml b/maven.indexer/nbproject/project.xml --- a/maven.indexer/nbproject/project.xml +++ b/maven.indexer/nbproject/project.xml @@ -81,8 +81,8 @@ - 1 - 2.4 + 3 + 3.0 diff --git a/maven.indexer/src/org/netbeans/modules/maven/indexer/api/PluginIndexManager.java b/maven.indexer/src/org/netbeans/modules/maven/indexer/api/PluginIndexManager.java --- a/maven.indexer/src/org/netbeans/modules/maven/indexer/api/PluginIndexManager.java +++ b/maven.indexer/src/org/netbeans/modules/maven/indexer/api/PluginIndexManager.java @@ -52,6 +52,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; +import java.util.BitSet; import java.util.Comparator; import java.util.Iterator; import java.util.LinkedHashMap; @@ -67,11 +68,12 @@ import org.apache.lucene.index.Term; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; -import org.apache.lucene.search.Hit; -import org.apache.lucene.search.Hits; +import org.apache.lucene.search.Collector; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.PrefixQuery; +import org.apache.lucene.search.Scorer; import org.apache.lucene.search.TermQuery; +import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.FSDirectory; import org.openide.filesystems.FileUtil; import org.openide.util.Exceptions; @@ -125,7 +127,7 @@ private static synchronized IndexSearcher getIndexSearcher() throws Exception { if (indexReader == null) { - FSDirectory dir = FSDirectory.getDirectory(getDefaultIndexLocation()); + FSDirectory dir = FSDirectory.open(getDefaultIndexLocation()); indexReader = IndexReader.open(dir); } //TODO shall the searcher be stored as field?? @@ -144,12 +146,12 @@ PrefixQuery pq = new PrefixQuery(new Term(FIELD_ID, grp)); bq.add(new BooleanClause(pq, BooleanClause.Occur.SHOULD)); } - Hits hits = searcher.search(bq); - Iterator it = hits.iterator(); + final BitSetCollector searchRes = new BitSetCollector(); + searcher.search(bq, searchRes); + final BitSet bitSet = searchRes.getMatchedDocs(); TreeSet toRet = new TreeSet(); - while (it.hasNext()) { - Hit hit = (Hit) it.next(); - Document doc = hit.getDocument(); + for (int docNum = bitSet.nextSetBit(0); docNum >= 0; docNum = bitSet.nextSetBit(docNum+1)) { + Document doc = searcher.getIndexReader().document(docNum); //TODO shall we somehow pick just one version fom a given plugin here? how? String prefix = doc.getField(FIELD_PREFIX).stringValue(); String goals = doc.getField(FIELD_GOALS).stringValue(); @@ -173,15 +175,15 @@ IndexSearcher searcher = getIndexSearcher(); String id = groupId + "|" + artifactId + "|" + version; //NOI18N TermQuery tq = new TermQuery(new Term(FIELD_ID, id)); - Hits hits = searcher.search(tq); - if (hits.length() == 0) { + final BitSetCollector searchRes = new BitSetCollector(); + searcher.search(tq, searchRes); + final BitSet bitSet = searchRes.getMatchedDocs(); + if (bitSet.isEmpty()) { return null; } - Iterator it = hits.iterator(); TreeSet toRet = new TreeSet(); - while (it.hasNext()) { //well should be just one anyway.. - Hit hit = (Hit) it.next(); - Document doc = hit.getDocument(); + for (int docNum = bitSet.nextSetBit(0); docNum >= 0; docNum = bitSet.nextSetBit(docNum+1)) { + Document doc = searcher.getIndexReader().document(docNum); String goals = doc.getField(FIELD_GOALS).stringValue(); String[] gls = StringUtils.split(goals, " "); //NOI18N for (String goal : gls) { @@ -204,15 +206,15 @@ IndexSearcher searcher = getIndexSearcher(); String id = groupId + "|" + artifactId + "|" + version; //NOI18N TermQuery tq = new TermQuery(new Term(FIELD_ID, id)); - Hits hits = searcher.search(tq); - if (hits.length() == 0) { + final BitSetCollector searchRes = new BitSetCollector(); + searcher.search(tq, searchRes); + final BitSet bitSet = searchRes.getMatchedDocs(); + if (bitSet.isEmpty()) { return null; - } - Iterator it = hits.iterator(); + } TreeSet toRet = new TreeSet(new PComparator()); - while (it.hasNext()) { //well should be just one anyway.. - Hit hit = (Hit) it.next(); - Document doc = hit.getDocument(); + for (int docNum = bitSet.nextSetBit(0); docNum >= 0; docNum = bitSet.nextSetBit(docNum+1)) { + Document doc = searcher.getIndexReader().document(docNum); String goals = doc.getField(FIELD_GOALS).stringValue(); String[] gls = StringUtils.split(goals, " "); //NOI18N for (String goal : gls) { @@ -263,15 +265,15 @@ assert prefix != null; IndexSearcher searcher = getIndexSearcher(); TermQuery tq = new TermQuery(new Term(FIELD_PREFIX, prefix)); - Hits hits = searcher.search(tq); - if (hits.length() == 0) { + final BitSetCollector searchRes = new BitSetCollector(); + searcher.search(tq, searchRes); + final BitSet bitSet = searchRes.getMatchedDocs(); + if (bitSet.isEmpty()) { return null; } - Iterator it = hits.iterator(); TreeSet toRet = new TreeSet(); - while (it.hasNext()) { //well should be just one anyway.. - Hit hit = (Hit) it.next(); - Document doc = hit.getDocument(); + for (int docNum = bitSet.nextSetBit(0); docNum >= 0; docNum = bitSet.nextSetBit(docNum+1)) { + Document doc = searcher.getIndexReader().document(docNum); String id = doc.getField(FIELD_ID).stringValue(); toRet.add(id); } @@ -304,15 +306,15 @@ } bq.add(bq2, BooleanClause.Occur.SHOULD); //why doesn't MUST work? - Hits hits = searcher.search(bq); - if (hits.length() == 0) { + final BitSetCollector searchRes = new BitSetCollector(); + searcher.search(bq, searchRes); + final BitSet bitSet = searchRes.getMatchedDocs(); + if (bitSet.isEmpty()) { return null; } - Iterator it = hits.iterator(); LinkedHashMap> toRet = new LinkedHashMap>(); - while (it.hasNext()) { //well should be just one anyway.. - Hit hit = (Hit) it.next(); - Document doc = hit.getDocument(); + for (int docNum = bitSet.nextSetBit(0); docNum >= 0; docNum = bitSet.nextSetBit(docNum+1)) { + Document doc = searcher.getIndexReader().document(docNum); Field prefixed = doc.getField(PREFIX_FIELD_CYCLE + packaging); if (prefixed != null) { String mapping = prefixed.stringValue(); @@ -505,5 +507,40 @@ } } + + + private static final class BitSetCollector extends Collector { + private int docBase; + private final BitSet bits = new BitSet(); + + public BitSet getMatchedDocs() { + return this.bits; + } + + + @Override + public void setScorer(Scorer scorer) { + //Todo: ignoring scorer for now, if ordering accoring to score needed + // this will need to be implemented + } + + // accept docs out of order (for a BitSet it doesn't matter) + @Override + public boolean acceptsDocsOutOfOrder() { + return true; + } + + @Override + public void collect(int doc) { + bits.set(doc + docBase); + } + + @Override + public void setNextReader(IndexReader reader, int docBase) { + this.docBase = docBase; + } + + } + } diff --git a/maven.repository/nbproject/project.xml b/maven.repository/nbproject/project.xml --- a/maven.repository/nbproject/project.xml +++ b/maven.repository/nbproject/project.xml @@ -72,8 +72,8 @@ - 1 - 2.5 + 3 + 3.0 diff --git a/maven.search/nbproject/project.xml b/maven.search/nbproject/project.xml --- a/maven.search/nbproject/project.xml +++ b/maven.search/nbproject/project.xml @@ -54,8 +54,8 @@ - 1 - 2.5 + 3 + 3.0 diff --git a/maven/nbproject/project.xml b/maven/nbproject/project.xml --- a/maven/nbproject/project.xml +++ b/maven/nbproject/project.xml @@ -116,8 +116,8 @@ - 1 - 2.5 + 3 + 3.0 diff --git a/parsing.api/nbproject/project.xml b/parsing.api/nbproject/project.xml --- a/parsing.api/nbproject/project.xml +++ b/parsing.api/nbproject/project.xml @@ -37,8 +37,8 @@ - 1 - 2.6 + 3 + 3.0 diff --git a/parsing.lucene/nbproject/project.xml b/parsing.lucene/nbproject/project.xml --- a/parsing.lucene/nbproject/project.xml +++ b/parsing.lucene/nbproject/project.xml @@ -19,8 +19,8 @@ - 1 - 2.13 + 3 + 3.0 diff --git a/parsing.lucene/src/org/netbeans/modules/parsing/lucene/DocumentIndexImpl.java b/parsing.lucene/src/org/netbeans/modules/parsing/lucene/DocumentIndexImpl.java --- a/parsing.lucene/src/org/netbeans/modules/parsing/lucene/DocumentIndexImpl.java +++ b/parsing.lucene/src/org/netbeans/modules/parsing/lucene/DocumentIndexImpl.java @@ -256,7 +256,7 @@ } } - private Reference getDataRef() { + private Reference getDataRef() { assert Thread.holdsLock(this); if (toAdd.isEmpty() && toRemove.isEmpty()) { assert dataRef == null; diff --git a/parsing.lucene/src/org/netbeans/modules/parsing/lucene/IndexDocumentImpl.java b/parsing.lucene/src/org/netbeans/modules/parsing/lucene/IndexDocumentImpl.java --- a/parsing.lucene/src/org/netbeans/modules/parsing/lucene/IndexDocumentImpl.java +++ b/parsing.lucene/src/org/netbeans/modules/parsing/lucene/IndexDocumentImpl.java @@ -76,7 +76,7 @@ @SuppressWarnings("deprecation") //NOI18N final Field field = new Field (key, value, stored ? Field.Store.YES : Field.Store.NO, - searchable ? Field.Index.NO_NORMS : Field.Index.NO); + searchable ? Field.Index.NOT_ANALYZED_NO_NORMS : Field.Index.NO); doc.add (field); } @@ -102,7 +102,7 @@ @SuppressWarnings("deprecation") //NOI18N private static Fieldable sourceNameField(String relativePath) { - return new Field(FIELD_PRIMARY_KEY, relativePath, Field.Store.YES, Field.Index.NO_NORMS); + return new Field(FIELD_PRIMARY_KEY, relativePath, Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS); } static Query sourceNameQuery(String relativePath) { diff --git a/parsing.lucene/src/org/netbeans/modules/parsing/lucene/support/Queries.java b/parsing.lucene/src/org/netbeans/modules/parsing/lucene/support/Queries.java --- a/parsing.lucene/src/org/netbeans/modules/parsing/lucene/support/Queries.java +++ b/parsing.lucene/src/org/netbeans/modules/parsing/lucene/support/Queries.java @@ -293,26 +293,6 @@ private TermCollector termCollector; @Override - public final BitSet bits(IndexReader reader) throws IOException { - final FilteredTermEnum enumerator = getTermEnum(reader); - try { - final BitSet bitSet = new BitSet(reader.maxDoc()); - new DocumentVisitor() { - @Override - public void visit(Term term, int doc) { - bitSet.set(doc); - if (termCollector != null) { - termCollector.add(doc, term); - } - } - }.generate(reader, enumerator); - return bitSet; - } finally { - enumerator.close(); - } - } - - @Override public final DocIdSet getDocIdSet(IndexReader reader) throws IOException { final FilteredTermEnum enumerator = getTermEnum(reader); try {