Return-Path: X-Original-To: apmail-lucene-lucene-net-commits-archive@www.apache.org Delivered-To: apmail-lucene-lucene-net-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 031D87D9F for ; Thu, 17 Nov 2011 03:50:07 +0000 (UTC) Received: (qmail 6577 invoked by uid 500); 17 Nov 2011 03:50:05 -0000 Delivered-To: apmail-lucene-lucene-net-commits-archive@lucene.apache.org Received: (qmail 6506 invoked by uid 500); 17 Nov 2011 03:50:03 -0000 Mailing-List: contact lucene-net-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: lucene-net-dev@lucene.apache.org Delivered-To: mailing list lucene-net-commits@lucene.apache.org Received: (qmail 6495 invoked by uid 99); 17 Nov 2011 03:50:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Nov 2011 03:50:01 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_FRT_STOCK2 X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Nov 2011 03:49:56 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 9267923888E4; Thu, 17 Nov 2011 03:49:35 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Date: Thu, 17 Nov 2011 03:49:34 -0000 To: lucene-net-commits@lucene.apache.org From: ccurrens@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111117034935.9267923888E4@eris.apache.org> Subject: [Lucene.Net] svn commit: r1203041 [1/2] - in /incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk: src/core/ src/core/Analysis/Tokenattributes/ src/core/Index/ src/core/Search/ src/core/Store/ src/core/Support/ src/core/Util/ test/core/ test/core/Index/ test/core/... Author: ccurrens Date: Thu Nov 17 03:49:32 2011 New Revision: 1203041 URL: http://svn.apache.org/viewvc?rev=1203041&view=rev Log: updated tests and fixed core/test porting errors Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Analysis/Tokenattributes/PayloadAttributeImpl.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/AssemblyInfo.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/BufferedDeletes.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/IndexWriter.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/ParallelReader.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/Term.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/FieldValueHitQueue.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searchable.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searcher.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/SortField.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/IndexInput.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/SimpleFSLockFactory.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Support/FileSupport.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/CloseableThreadLocal.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestIndexWriter.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestParallelReader.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestCustomSearcherSort.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestSetNorm.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestTermRangeQuery.cs incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/UpdatedTests.txt incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Util/_TestUtil.cs Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Analysis/Tokenattributes/PayloadAttributeImpl.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Analysis/Tokenattributes/PayloadAttributeImpl.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Analysis/Tokenattributes/PayloadAttributeImpl.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Analysis/Tokenattributes/PayloadAttributeImpl.cs Thu Nov 17 03:49:32 2011 @@ -59,9 +59,16 @@ namespace Lucene.Net.Analysis.Tokenattri public override System.Object Clone() { - PayloadAttributeImpl impl = new PayloadAttributeImpl(); - impl.payload = new Payload(this.payload.data, this.payload.offset, this.payload.length); - return impl; + var clone = (PayloadAttributeImpl) base.Clone(); + if (payload != null) + { + clone.payload = (Payload) payload.Clone(); + } + return clone; + // TODO: This code use to be as below. Any reason why? the if(payload!=null) was missing... + //PayloadAttributeImpl impl = new PayloadAttributeImpl(); + //impl.payload = new Payload(this.payload.data, this.payload.offset, this.payload.length); + //return impl; } public override bool Equals(System.Object other) Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/AssemblyInfo.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/AssemblyInfo.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/AssemblyInfo.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/AssemblyInfo.cs Thu Nov 17 03:49:32 2011 @@ -36,7 +36,7 @@ using System.Runtime.CompilerServices; [assembly: CLSCompliant(true)] -[assembly: AssemblyInformationalVersionAttribute("2.9.4")] +[assembly: AssemblyInformationalVersionAttribute("3.0.3")] // for testing [assembly: InternalsVisibleTo("Lucene.Net.Test, PublicKey=002400000480000094000000060200000024000052534131000400000100010075a07ce602f88e" + Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/FileDiffs.txt Thu Nov 17 03:49:32 2011 @@ -162,7 +162,7 @@ index\ index\NormsWriterPerField.java - Text files are different index\NormsWriterPerThread.java - Text files are different index\package.html - IDENTICAL - index\ParallelReader.java - Text files are different + index\ParallelReader.java - DONE index\Payload.java - Text files are different index\PositionBasedTermVectorMapper.java - Text files are different index\RawPostingList.java - IDENTICAL @@ -352,8 +352,8 @@ search ScoreDoc.java - Text files are different ScoreDocComparator.java - Removed in 3.x Scorer.java - Text files are different - Searchable.java - Text files are different - Searcher.java - Text files are different + Searchable.java - DONE + Searcher.java - DONE Similarity.java - PORTED SimilarityDelegator.java - PORTED SingleTermEnum.java - PORTED Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/BufferedDeletes.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/BufferedDeletes.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/BufferedDeletes.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/BufferedDeletes.cs Thu Nov 17 03:49:32 2011 @@ -97,12 +97,12 @@ namespace Lucene.Net.Index numTerms += in_Renamed.numTerms; bytesUsed += in_Renamed.bytesUsed; foreach (KeyValuePair term in in_Renamed.terms) - { - terms.Add(term); + { + terms[term.Key] = term.Value; } foreach (KeyValuePair term in in_Renamed.queries) { - queries.Add(term); + queries[term.Key] = term.Value; } docIDs.AddRange(in_Renamed.docIDs); @@ -134,7 +134,6 @@ namespace Lucene.Net.Index { lock (this) { - IDictionary newDeleteTerms; // Remap delete-by-term @@ -179,7 +178,7 @@ namespace Lucene.Net.Index newDeleteQueries = new HashMap(queries.Count); foreach(var entry in queries) { - int num = (int)entry.Value; + int num = entry.Value; newDeleteQueries[entry.Key] = mapper.Remap(num); } } Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/IndexWriter.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/IndexWriter.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/IndexWriter.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/IndexWriter.cs Thu Nov 17 03:49:32 2011 @@ -4170,7 +4170,6 @@ namespace Lucene.Net.Index { lock (this) { - if (hitOOM) { throw new System.SystemException("this writer hit an OutOfMemoryError; cannot flush"); Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/ParallelReader.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/ParallelReader.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/ParallelReader.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/ParallelReader.cs Thu Nov 17 03:49:32 2011 @@ -16,7 +16,9 @@ */ using System; - +using System.Collections.Generic; +using System.Linq; +using Lucene.Net.Support; using Document = Lucene.Net.Documents.Document; using FieldSelector = Lucene.Net.Documents.FieldSelector; using FieldSelectorResult = Lucene.Net.Documents.FieldSelectorResult; @@ -43,12 +45,12 @@ namespace Lucene.Net.Index /// public class ParallelReader:IndexReader, System.ICloneable { - private System.Collections.ArrayList readers = new System.Collections.ArrayList(); - private System.Collections.IList decrefOnClose = new System.Collections.ArrayList(); // remember which subreaders to decRef on close + private List readers = new List(); + private List decrefOnClose = new List(); // remember which subreaders to decRef on close internal bool incRefReaders = false; - private System.Collections.SortedList fieldToReader = new System.Collections.SortedList(); - private System.Collections.IDictionary readerToFields = new System.Collections.Hashtable(); - private System.Collections.IList storedFieldReaders = new System.Collections.ArrayList(); + private SortedDictionary fieldToReader = new SortedDictionary(); + private IDictionary> readerToFields = new HashMap>(); + private List storedFieldReaders = new List(); private int maxDoc; private int numDocs; @@ -107,14 +109,13 @@ namespace Lucene.Net.Index if (reader.NumDocs() != numDocs) throw new System.ArgumentException("All readers must have same numDocs: " + numDocs + "!=" + reader.NumDocs()); - System.Collections.Generic.ICollection fields = reader.GetFieldNames(IndexReader.FieldOption.ALL); + ICollection fields = reader.GetFieldNames(IndexReader.FieldOption.ALL); readerToFields[reader] = fields; - System.Collections.IEnumerator i = fields.GetEnumerator(); - while (i.MoveNext()) + foreach(var field in fields) { // update fieldToReader map - System.String field = (System.String) i.Current; - if (fieldToReader[field] == null) + // Do a containskey firt to mimic java behavior + if (!fieldToReader.ContainsKey(field) || fieldToReader[field] == null) fieldToReader[field] = reader; } @@ -172,15 +173,14 @@ namespace Lucene.Net.Index EnsureOpen(); bool reopened = false; - System.Collections.IList newReaders = new System.Collections.ArrayList(); + IList newReaders = new List(); bool success = false; try { - for (int i = 0; i < readers.Count; i++) + foreach(var oldReader in readers) { - IndexReader oldReader = (IndexReader) readers[i]; IndexReader newReader = null; if (doClone) { @@ -206,7 +206,7 @@ namespace Lucene.Net.Index { for (int i = 0; i < newReaders.Count; i++) { - IndexReader r = (IndexReader) newReaders[i]; + IndexReader r = newReaders[i]; if (r != readers[i]) { try @@ -224,12 +224,12 @@ namespace Lucene.Net.Index if (reopened) { - System.Collections.IList newDecrefOnClose = new System.Collections.ArrayList(); + List newDecrefOnClose = new List(); ParallelReader pr = new ParallelReader(); for (int i = 0; i < readers.Count; i++) { - IndexReader oldReader = (IndexReader) readers[i]; - IndexReader newReader = (IndexReader) newReaders[i]; + IndexReader oldReader = readers[i]; + IndexReader newReader = newReaders[i]; if (newReader == oldReader) { newDecrefOnClose.Add(true); @@ -278,16 +278,16 @@ namespace Lucene.Net.Index { // Don't call ensureOpen() here (it could affect performance) if (readers.Count > 0) - return ((IndexReader) readers[0]).IsDeleted(n); + return readers[0].IsDeleted(n); return false; } // delete in all readers protected internal override void DoDelete(int n) { - for (int i = 0; i < readers.Count; i++) + foreach(var reader in readers) { - ((IndexReader) readers[i]).DeleteDocument(n); + reader.DeleteDocument(n); } hasDeletions = true; } @@ -295,9 +295,9 @@ namespace Lucene.Net.Index // undeleteAll in all readers protected internal override void DoUndeleteAll() { - for (int i = 0; i < readers.Count; i++) + foreach(var reader in readers) { - ((IndexReader) readers[i]).UndeleteAll(); + reader.UndeleteAll(); } hasDeletions = false; } @@ -307,17 +307,15 @@ namespace Lucene.Net.Index { EnsureOpen(); Document result = new Document(); - for (int i = 0; i < storedFieldReaders.Count; i++) + foreach(IndexReader reader in storedFieldReaders) { - IndexReader reader = (IndexReader) storedFieldReaders[i]; - bool include = (fieldSelector == null); if (!include) { - System.Collections.IEnumerator it = ((System.Collections.ICollection) readerToFields[reader]).GetEnumerator(); - while (it.MoveNext()) + var fields = readerToFields[reader]; + foreach(var field in fields) { - if (fieldSelector.Accept((System.String) it.Current) != FieldSelectorResult.NO_LOAD) + if (fieldSelector.Accept(field) != FieldSelectorResult.NO_LOAD) { include = true; break; @@ -326,10 +324,10 @@ namespace Lucene.Net.Index } if (include) { - System.Collections.IEnumerator fieldIterator = reader.Document(n, fieldSelector).GetFields().GetEnumerator(); - while (fieldIterator.MoveNext()) + var fields = reader.Document(n, fieldSelector).GetFields(); + foreach(var field in fields) { - result.Add((Fieldable) fieldIterator.Current); + result.Add(field); } } } @@ -340,24 +338,23 @@ namespace Lucene.Net.Index public override TermFreqVector[] GetTermFreqVectors(int n) { EnsureOpen(); - System.Collections.ArrayList results = new System.Collections.ArrayList(); - System.Collections.IEnumerator i = new System.Collections.Hashtable(fieldToReader).GetEnumerator(); - while (i.MoveNext()) - { - System.Collections.DictionaryEntry e = (System.Collections.DictionaryEntry) i.Current; - System.String field = (System.String) e.Key; - IndexReader reader = (IndexReader) e.Value; + IList results = new List(); + foreach(var e in fieldToReader) + { + System.String field = e.Key; + IndexReader reader = e.Value; + TermFreqVector vector = reader.GetTermFreqVector(n, field); if (vector != null) results.Add(vector); } - return (TermFreqVector[]) results.ToArray(typeof(TermFreqVector)); + return results.ToArray(); } public override TermFreqVector GetTermFreqVector(int n, System.String field) { EnsureOpen(); - IndexReader reader = ((IndexReader) fieldToReader[field]); + IndexReader reader = (fieldToReader[field]); return reader == null?null:reader.GetTermFreqVector(n, field); } @@ -365,7 +362,7 @@ namespace Lucene.Net.Index public override void GetTermFreqVector(int docNumber, System.String field, TermVectorMapper mapper) { EnsureOpen(); - IndexReader reader = ((IndexReader) fieldToReader[field]); + IndexReader reader = (fieldToReader[field]); if (reader != null) { reader.GetTermFreqVector(docNumber, field, mapper); @@ -376,12 +373,10 @@ namespace Lucene.Net.Index { EnsureOpen(); - System.Collections.IEnumerator i = new System.Collections.Hashtable(fieldToReader).GetEnumerator(); - while (i.MoveNext()) + foreach(var e in fieldToReader) { - System.Collections.DictionaryEntry e = (System.Collections.DictionaryEntry) i.Current; - System.String field = (System.String) e.Key; - IndexReader reader = (IndexReader) e.Value; + System.String field = e.Key; + IndexReader reader = e.Value; reader.GetTermFreqVector(docNumber, field, mapper); } } @@ -389,28 +384,28 @@ namespace Lucene.Net.Index public override bool HasNorms(System.String field) { EnsureOpen(); - IndexReader reader = ((IndexReader) fieldToReader[field]); - return reader == null?false:reader.HasNorms(field); + IndexReader reader = fieldToReader[field]; + return reader != null && reader.HasNorms(field); } public override byte[] Norms(System.String field) { EnsureOpen(); - IndexReader reader = ((IndexReader) fieldToReader[field]); + IndexReader reader = fieldToReader[field]; return reader == null?null:reader.Norms(field); } public override void Norms(System.String field, byte[] result, int offset) { EnsureOpen(); - IndexReader reader = ((IndexReader) fieldToReader[field]); + IndexReader reader = fieldToReader[field]; if (reader != null) reader.Norms(field, result, offset); } protected internal override void DoSetNorm(int n, System.String field, byte value_Renamed) { - IndexReader reader = ((IndexReader) fieldToReader[field]); + IndexReader reader = fieldToReader[field]; if (reader != null) reader.DoSetNorm(n, field, value_Renamed); } @@ -430,7 +425,7 @@ namespace Lucene.Net.Index public override int DocFreq(Term term) { EnsureOpen(); - IndexReader reader = ((IndexReader) fieldToReader[term.Field()]); + IndexReader reader = fieldToReader[term.Field()]; return reader == null?0:reader.DocFreq(term); } @@ -461,9 +456,9 @@ namespace Lucene.Net.Index /// Checks recursively if all subreaders are up to date. public override bool IsCurrent() { - for (int i = 0; i < readers.Count; i++) - { - if (!((IndexReader) readers[i]).IsCurrent()) + foreach(var reader in readers) + { + if (!reader.IsCurrent()) { return false; } @@ -476,16 +471,16 @@ namespace Lucene.Net.Index /// Checks recursively if all subindexes are optimized public override bool IsOptimized() { - for (int i = 0; i < readers.Count; i++) - { - if (!((IndexReader) readers[i]).IsOptimized()) - { - return false; - } - } - - // all subindexes are optimized - return true; + foreach (var reader in readers) + { + if (!reader.IsOptimized()) + { + return false; + } + } + + // all subindexes are optimized + return true; } @@ -499,13 +494,13 @@ namespace Lucene.Net.Index // for testing public /*internal*/ virtual IndexReader[] GetSubReaders() { - return (IndexReader[]) readers.ToArray(typeof(IndexReader)); + return readers.ToArray(); } - protected internal override void DoCommit(System.Collections.Generic.IDictionary commitUserData) + protected internal override void DoCommit(IDictionary commitUserData) { - for (int i = 0; i < readers.Count; i++) - ((IndexReader) readers[i]).Commit(commitUserData); + foreach(var reader in readers) + reader.Commit(commitUserData); } protected internal override void DoClose() @@ -514,13 +509,13 @@ namespace Lucene.Net.Index { for (int i = 0; i < readers.Count; i++) { - if (((System.Boolean) decrefOnClose[i])) + if (decrefOnClose[i]) { - ((IndexReader) readers[i]).DecRef(); + readers[i].DecRef(); } else { - ((IndexReader) readers[i]).Close(); + readers[i].Close(); } } } @@ -531,12 +526,11 @@ namespace Lucene.Net.Index public override System.Collections.Generic.ICollection GetFieldNames(IndexReader.FieldOption fieldNames) { EnsureOpen(); - System.Collections.Generic.List fieldSet = new System.Collections.Generic.List(); - for (int i = 0; i < readers.Count; i++) + ISet fieldSet = new HashSet(); + foreach(var reader in readers) { - IndexReader reader = ((IndexReader) readers[i]); - System.Collections.Generic.ICollection names = reader.GetFieldNames(fieldNames); - fieldSet.AddRange(names); + ICollection names = reader.GetFieldNames(fieldNames); + fieldSet.UnionWith(names); } return fieldSet; } @@ -557,7 +551,7 @@ namespace Lucene.Net.Index } private System.String field; - private System.Collections.IEnumerator fieldIterator; + private IEnumerator fieldIterator; private TermEnum termEnum; public ParallelTermEnum(ParallelReader enclosingInstance) @@ -565,7 +559,7 @@ namespace Lucene.Net.Index InitBlock(enclosingInstance); try { - field = ((System.String) Enclosing_Instance.fieldToReader.GetKey(0)); + field = Enclosing_Instance.fieldToReader.Keys.First(); } catch (ArgumentOutOfRangeException e) { @@ -573,14 +567,14 @@ namespace Lucene.Net.Index return; } if (field != null) - termEnum = ((IndexReader) Enclosing_Instance.fieldToReader[field]).Terms(); + termEnum = Enclosing_Instance.fieldToReader[field].Terms(); } public ParallelTermEnum(ParallelReader enclosingInstance, Term term) { InitBlock(enclosingInstance); field = term.Field(); - IndexReader reader = ((IndexReader) Enclosing_Instance.fieldToReader[field]); + IndexReader reader = Enclosing_Instance.fieldToReader[field]; if (reader != null) termEnum = reader.Terms(term); } @@ -599,30 +593,20 @@ namespace Lucene.Net.Index // find the next field with terms, if any if (fieldIterator == null) { - System.Collections.Comparer comparer = System.Collections.Comparer.Default; - System.Collections.SortedList newList = new System.Collections.SortedList(); - if (Enclosing_Instance.fieldToReader != null) + var newList = new List(); + if (Enclosing_Instance.fieldToReader != null && Enclosing_Instance.fieldToReader.Count > 0) { - if (Enclosing_Instance.fieldToReader.Count > 0) - { - int index = 0; - while (comparer.Compare(Enclosing_Instance.fieldToReader.GetKey(index), field) < 0) - index++; - for (; index < Enclosing_Instance.fieldToReader.Count; index++) - { - newList.Add(Enclosing_Instance.fieldToReader.GetKey(index), Enclosing_Instance.fieldToReader[Enclosing_Instance.fieldToReader.GetKey(index)]); - } - } + var comparer = Enclosing_Instance.fieldToReader.Comparer; + foreach(var entry in Enclosing_Instance.fieldToReader.Keys.Where(x => comparer.Compare(x, field) >= 0)) + newList.Add(entry); } - fieldIterator = newList.Keys.GetEnumerator(); - fieldIterator.MoveNext(); - System.Object generatedAux = fieldIterator.Current; // Skip field to get next one + fieldIterator = newList.Skip(1).GetEnumerator(); // Skip field to get next one } while (fieldIterator.MoveNext()) { - field = ((System.String) fieldIterator.Current); - termEnum = ((IndexReader) Enclosing_Instance.fieldToReader[field]).Terms(new Term(field)); + field = fieldIterator.Current; + termEnum = Enclosing_Instance.fieldToReader[field].Terms(new Term(field)); Term term = termEnum.Term(); if (term != null && (System.Object) term.Field() == (System.Object) field) return true; @@ -681,10 +665,12 @@ namespace Lucene.Net.Index public ParallelTermDocs(ParallelReader enclosingInstance, Term term) { InitBlock(enclosingInstance); - if (term == null) - termDocs = (Enclosing_Instance.readers.Count == 0)?null:((IndexReader) Enclosing_Instance.readers[0]).TermDocs(null); - else - Seek(term); + if (term == null) + termDocs = (Enclosing_Instance.readers.Count == 0) + ? null + : Enclosing_Instance.readers[0].TermDocs(null); + else + Seek(term); } public virtual int Doc() @@ -698,7 +684,7 @@ namespace Lucene.Net.Index public virtual void Seek(Term term) { - IndexReader reader = ((IndexReader) Enclosing_Instance.fieldToReader[term.Field()]); + IndexReader reader = Enclosing_Instance.fieldToReader[term.Field()]; termDocs = reader != null?reader.TermDocs(term):null; } @@ -766,7 +752,7 @@ namespace Lucene.Net.Index public override void Seek(Term term) { - IndexReader reader = ((IndexReader) Enclosing_Instance.fieldToReader[term.Field()]); + IndexReader reader = Enclosing_Instance.fieldToReader[term.Field()]; termDocs = reader != null?reader.TermPositions(term):null; } Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/SegmentInfos.cs Thu Nov 17 03:49:32 2011 @@ -127,7 +127,7 @@ namespace Lucene.Net.Index // or wrote; this is normally the same as generation except if // there was an IOException that had interrupted a commit - private System.Collections.Generic.IDictionary userData = new System.Collections.Generic.Dictionary(); // Opaque Map that user can specify during IndexWriter.commit + private IDictionary userData = new HashMap(); // Opaque Map that user can specify during IndexWriter.commit /// If non-null, information about loading segments_N files /// @@ -315,20 +315,20 @@ namespace Lucene.Net.Index } else if (0 != input.ReadByte()) { - // TODO: In java, this is a read-only dictionary, probably for a reason, though - // I can't see immediately why. We'd have to roll our own, I can't find - // and equivelant in the BCL - userData = new System.Collections.Generic.Dictionary(); + // TODO: Should be read-only map + userData = new HashMap(); userData.Add("userData", input.ReadString()); } else { - userData = new System.Collections.Generic.Dictionary(); + // TODO: Should be empty read-only map + userData = new HashMap(); } } else { - userData = new System.Collections.Generic.Dictionary(); + // TODO: Should be empty read-only map + userData = new HashMap(); } if (format <= FORMAT_CHECKSUM) @@ -1037,7 +1037,7 @@ namespace Lucene.Net.Index { if (data == null) { - userData = new System.Collections.Generic.Dictionary(); + userData = new HashMap(); } else { Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/Term.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/Term.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/Term.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Index/Term.cs Thu Nov 17 03:49:32 2011 @@ -30,7 +30,7 @@ namespace Lucene.Net.Index /// [Serializable] - public sealed class Term : System.IComparable + public sealed class Term : System.IComparable { internal System.String field; internal System.String text; Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/FieldValueHitQueue.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/FieldValueHitQueue.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/FieldValueHitQueue.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/FieldValueHitQueue.cs Thu Nov 17 03:49:32 2011 @@ -29,14 +29,8 @@ namespace Lucene.Net.Search /// incompatible ways in the next release. /// /// - /// 2.9 - /// - /// $Id: - /// - /// - /// - /// - /// + /// + /// public abstract class FieldValueHitQueue : PriorityQueue { // had to change from internal to public, due to public accessability of FieldValueHitQueue @@ -120,9 +114,6 @@ namespace Lucene.Net.Search { SortField field = fields[i]; - // AUTO is resolved before we are called - System.Diagnostics.Debug.Assert(field.GetType() != SortField.AUTO); - reverseMul[i] = field.reverse?- 1:1; comparators[i] = field.GetComparator(size, i); } Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searchable.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searchable.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searchable.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searchable.cs Thu Nov 17 03:49:32 2011 @@ -43,31 +43,6 @@ namespace Lucene.Net.Search /// public interface Searchable { - - /// Lower-level search API. - /// - ///

is called for every non-zero - /// scoring document. - ///
HitCollector-based access to remote indexes is discouraged. - /// - ///

Applications should only use this if they need all of the - /// matching documents. The high-level search API () - /// is usually more efficient, as it skips - /// non-high-scoring hits. - /// - ///

- /// to match documents - /// - /// if non-null, used to permit documents to be collected. - /// - /// to receive hits - /// - /// BooleanQuery.TooManyClauses - /// use instead. - /// - [Obsolete("use Search(Weight, Filter, Collector) instead.")] - void Search(Weight weight, Filter filter, HitCollector results); - /// Lower-level search API. /// ///

@@ -76,7 +51,7 @@ namespace Lucene.Net.Search /// ///

/// Applications should only use this if they need all of the matching - /// documents. The high-level search API () is + /// documents. The high-level search API () is /// usually more efficient, as it skips non-high-scoring hits. /// ///

@@ -91,7 +66,7 @@ namespace Lucene.Net.Search /// Frees resources associated with this Searcher. /// Be careful not to call this method while you are still using objects - /// like . + /// that reference this searchable /// void Close(); @@ -120,8 +95,8 @@ namespace Lucene.Net.Search /// ///

Called by . /// - ///

Applications should usually call or - /// instead. + ///

Applications should usually call or + /// instead. /// /// BooleanQuery.TooManyClauses TopDocs Search(Weight weight, Filter filter, int n); Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searcher.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searcher.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searcher.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/Searcher.cs Thu Nov 17 03:49:32 2011 @@ -16,7 +16,7 @@ */ using System; - +using Lucene.Net.Documents; using Document = Lucene.Net.Documents.Document; using CorruptIndexException = Lucene.Net.Index.CorruptIndexException; using Term = Lucene.Net.Index.Term; @@ -42,56 +42,6 @@ namespace Lucene.Net.Search similarity = Similarity.GetDefault(); } - ///

Returns the documents matching query. - /// BooleanQuery.TooManyClauses - /// Hits will be removed in Lucene 3.0. Use - /// instead. - /// - [Obsolete("Hits will be removed in Lucene 3.0. Use Search(Query, Filter, int) instead")] - public Hits Search(Query query) - { - return Search(query, (Filter) null); - } - - /// Returns the documents matching query and - /// filter. - /// - /// BooleanQuery.TooManyClauses - /// Hits will be removed in Lucene 3.0. Use - /// instead. - /// - [Obsolete("Hits will be removed in Lucene 3.0. Use Search(Query, Filter, int) instead")] - public virtual Hits Search(Query query, Filter filter) - { - return new Hits(this, query, filter); - } - - /// Returns documents matching query sorted by - /// sort. - /// - /// BooleanQuery.TooManyClauses - /// Hits will be removed in Lucene 3.0. Use - /// instead. - /// - [Obsolete("Hits will be removed in Lucene 3.0. Use Search(Query, Filter, int, Sort) instead")] - public virtual Hits Search(Query query, Sort sort) - { - return new Hits(this, query, null, sort); - } - - /// Returns documents matching query and filter, - /// sorted by sort. - /// - /// BooleanQuery.TooManyClauses - /// Hits will be removed in Lucene 3.0. Use - /// instead. - /// - [Obsolete("Hits will be removed in Lucene 3.0. Use Search(Query, Filter, int, Sort) instead")] - public virtual Hits Search(Query query, Filter filter, Sort sort) - { - return new Hits(this, query, filter, sort); - } - /// Search implementation with arbitrary sorting. Finds /// the top n hits for query, applying /// filter if non-null, and sorting the hits by the criteria in @@ -109,28 +59,6 @@ namespace Lucene.Net.Search /// Lower-level search API. /// - ///

is called for every matching - /// document. - /// - ///

Applications should only use this if they need all of the - /// matching documents. The high-level search API () - /// is usually more efficient, as it skips - /// non-high-scoring hits. - ///

Note: The score passed to this method is a raw score. - /// In other words, the score will not necessarily be a float whose value is - /// between 0 and 1. - ///

- /// BooleanQuery.TooManyClauses - /// use instead. - /// - [Obsolete("use Search(Query, Collector) instead.")] - public virtual void Search(Query query, HitCollector results) - { - Search(CreateWeight(query), null, new HitCollectorWrapper(results)); - } - - /// Lower-level search API. - /// ///

is called for every matching document. /// ///

Applications should only use this if they need all of the matching @@ -148,33 +76,6 @@ namespace Lucene.Net.Search ///

Lower-level search API. /// - ///

is called for every matching - /// document. - ///
HitCollector-based access to remote indexes is discouraged. - /// - ///

Applications should only use this if they need all of the - /// matching documents. The high-level search API () - /// is usually more efficient, as it skips - /// non-high-scoring hits. - /// - ///

- /// to match documents - /// - /// if non-null, used to permit documents to be collected. - /// - /// to receive hits - /// - /// BooleanQuery.TooManyClauses - /// use instead. - /// - [Obsolete("use Search(Query, Filter, Collector) instead.")] - public virtual void Search(Query query, Filter filter, HitCollector results) - { - Search(CreateWeight(query), filter, new HitCollectorWrapper(results)); - } - - /// Lower-level search API. - /// ///

is called for every matching /// document. ///
Collector-based access to remote indexes is discouraged. @@ -270,28 +171,18 @@ namespace Lucene.Net.Search } return result; } - - /* The following abstract methods were added as a workaround for GCJ bug #15411. - * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15411 - */ - /// use instead. - /// - [Obsolete("use Search(Weight, Filter, Collector) instead.")] - public virtual void Search(Weight weight, Filter filter, HitCollector results) - { - Search(weight, filter, new HitCollectorWrapper(results)); - } - abstract public void Search(Weight weight, Filter filter, Collector results); - abstract public void Close(); - abstract public void Dispose(); - abstract public int DocFreq(Term term); - abstract public int MaxDoc(); - abstract public TopDocs Search(Weight weight, Filter filter, int n); - abstract public Document Doc(int i); - abstract public Query Rewrite(Query query); - abstract public Explanation Explain(Weight weight, int doc); - abstract public TopFieldDocs Search(Weight weight, Filter filter, int n, Sort sort); + + public abstract void Search(Weight weight, Filter filter, Collector results); + public abstract void Close(); + public abstract void Dispose(); + public abstract int DocFreq(Term term); + public abstract int MaxDoc(); + public abstract TopDocs Search(Weight weight, Filter filter, int n); + public abstract Document Doc(int i); + public abstract Document Doc(int docid, FieldSelector fieldSelector); + public abstract Query Rewrite(Query query); + public abstract Explanation Explain(Weight weight, int doc); + public abstract TopFieldDocs Search(Weight weight, Filter filter, int n, Sort sort); /* End patch for GCJ bug #15411. */ - public abstract Lucene.Net.Documents.Document Doc(int param1, Lucene.Net.Documents.FieldSelector param2); } } \ No newline at end of file Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/SortField.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/SortField.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/SortField.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Search/SortField.cs Thu Nov 17 03:49:32 2011 @@ -42,7 +42,6 @@ namespace Lucene.Net.Search [Serializable] public class SortField { - ///

Sort by document score (relevancy). Sort values are Float and higher /// values are at the front. /// @@ -53,17 +52,7 @@ namespace Lucene.Net.Search ///
public const int DOC = 1; - /// Guess type of sort based on field contents. A regular expression is used - /// to look at the first term indexed for the field and determine if it - /// represents an integer number, a floating point number, or just arbitrary - /// string characters. - /// - /// Please specify the exact type, instead. - /// Especially, guessing does not work with the new - /// type. - /// - [Obsolete("Please specify the exact type, instead. Especially, guessing does not work with the new NumericField type.")] - public const int AUTO = 2; + // reserved, in Lucene 2.9, there was a constant: AUTO = 2 /// Sort using term values as Strings. Sort values are String and lower /// values are at the front. @@ -123,47 +112,14 @@ namespace Lucene.Net.Search public static readonly SortField FIELD_DOC = new SortField(null, DOC); private System.String field; - private int type = AUTO; // defaults to determining type dynamically + private int type; // defaults to determining type dynamically private System.Globalization.CultureInfo locale; // defaults to "natural order" (no Locale) internal bool reverse = false; // defaults to natural order - private SortComparatorSource factory; private Lucene.Net.Search.Parser parser; // Used for CUSTOM sort private FieldComparatorSource comparatorSource; - private bool useLegacy = false; // remove in Lucene 3.0 - - /// Creates a sort by terms in the given field where the type of term value - /// is determined dynamically (). - /// - /// Name of field to sort by, cannot be - /// null. - /// - /// Please specify the exact type instead. - /// - [Obsolete("Please specify the exact type instead.")] - public SortField(System.String field) - { - InitFieldType(field, AUTO); - } - - /// Creates a sort, possibly in reverse, by terms in the given field where - /// the type of term value is determined dynamically (). - /// - /// Name of field to sort by, cannot be null. - /// - /// True if natural order should be reversed. - /// - /// Please specify the exact type instead. - /// - [Obsolete("Please specify the exact type instead.")] - public SortField(System.String field, bool reverse) - { - InitFieldType(field, AUTO); - this.reverse = reverse; - } - /// Creates a sort by terms in the given field with the type of term /// values explicitly given. /// @@ -280,21 +236,6 @@ namespace Lucene.Net.Search /// /// Returns a comparator for sorting hits. /// - /// use SortField (String field, FieldComparatorSource comparator) - /// - [Obsolete("use SortField (String field, FieldComparatorSource comparator)")] - public SortField(System.String field, SortComparatorSource comparator) - { - InitFieldType(field, CUSTOM); - SetUseLegacySearch(true); - this.factory = comparator; - } - - /// Creates a sort with a custom comparison function. - /// Name of field to sort by; cannot be null. - /// - /// Returns a comparator for sorting hits. - /// public SortField(System.String field, FieldComparatorSource comparator) { InitFieldType(field, CUSTOM); @@ -308,24 +249,6 @@ namespace Lucene.Net.Search /// /// True if natural order should be reversed. /// - /// use SortField (String field, FieldComparatorSource comparator, boolean reverse) - /// - [Obsolete("use SortField(String field, FieldComparatorSource comparator, boolean reverse)")] - public SortField(System.String field, SortComparatorSource comparator, bool reverse) - { - InitFieldType(field, CUSTOM); - SetUseLegacySearch(true); - this.reverse = reverse; - this.factory = comparator; - } - - /// Creates a sort, possibly in reverse, with a custom comparison function. - /// Name of field to sort by; cannot be null. - /// - /// Returns a comparator for sorting hits. - /// - /// True if natural order should be reversed. - /// public SortField(System.String field, FieldComparatorSource comparator, bool reverse) { InitFieldType(field, CUSTOM); @@ -360,7 +283,7 @@ namespace Lucene.Net.Search } /// Returns the type of contents in the field. - /// One of the constants SCORE, DOC, AUTO, STRING, INT or FLOAT. + /// One of the constants SCORE, DOC, STRING, INT or FLOAT. /// public new virtual int GetType() { @@ -395,44 +318,15 @@ namespace Lucene.Net.Search return reverse; } - /// use - /// - [Obsolete("use GetComparatorSource()")] - public virtual SortComparatorSource GetFactory() - { - return factory; - } - + /// + /// Returns the used for + /// custom sorting + /// public virtual FieldComparatorSource GetComparatorSource() { return comparatorSource; } - /// Use legacy IndexSearch implementation: search with a DirectoryReader rather - /// than passing a single hit collector to multiple SegmentReaders. - /// - /// - /// true for legacy behavior - /// - /// will be removed in Lucene 3.0. - /// - [Obsolete("will be removed in Lucene 3.0.")] - public virtual void SetUseLegacySearch(bool legacy) - { - this.useLegacy = legacy; - } - - /// if true, IndexSearch will use legacy sorting search implementation. - /// eg. multiple Priority Queues. - /// - /// will be removed in Lucene 3.0. - /// - [Obsolete("will be removed in Lucene 3.0.")] - public virtual bool GetUseLegacySearch() - { - return this.useLegacy; - } - public override System.String ToString() { System.Text.StringBuilder buffer = new System.Text.StringBuilder(); @@ -443,62 +337,46 @@ namespace Lucene.Net.Search buffer.Append(""); break; - case DOC: buffer.Append(""); break; - - case AUTO: - buffer.Append(""); - break; - - case STRING: buffer.Append(""); break; - case STRING_VAL: buffer.Append(""); break; - case BYTE: buffer.Append(""); break; - case SHORT: buffer.Append(""); break; - case INT: buffer.Append(""); break; - case LONG: buffer.Append(""); break; - case FLOAT: buffer.Append(""); break; - case DOUBLE: buffer.Append(""); break; - case CUSTOM: - buffer.Append("'); + buffer.Append("'); break; - default: buffer.Append(""); break; @@ -516,7 +394,7 @@ namespace Lucene.Net.Search } /// Returns true if o is equal to this. If a - /// (deprecated) or + /// or /// was provided, it must properly /// implement equals (unless a singleton is always used). /// @@ -527,11 +405,17 @@ namespace Lucene.Net.Search if (!(o is SortField)) return false; SortField other = (SortField) o; - return ((System.Object) other.field == (System.Object) this.field && other.type == this.type && other.reverse == this.reverse && (other.locale == null?this.locale == null:other.locale.Equals(this.locale)) && (other.factory == null?this.factory == null:other.factory.Equals(this.factory)) && (other.comparatorSource == null?this.comparatorSource == null:other.comparatorSource.Equals(this.comparatorSource)) && (other.parser == null?this.parser == null:other.parser.Equals(this.parser))); + return ((System.Object) other.field == (System.Object) this.field && other.type == this.type && + other.reverse == this.reverse && + (other.locale == null ? this.locale == null : other.locale.Equals(this.locale)) && + (other.comparatorSource == null + ? this.comparatorSource == null + : other.comparatorSource.Equals(this.comparatorSource)) && + (other.parser == null ? this.parser == null : other.parser.Equals(this.parser))); } /// Returns true if o is equal to this. If a - /// (deprecated) or + /// (deprecated) or /// was provided, it must properly /// implement hashCode (unless a singleton is always /// used). @@ -545,8 +429,6 @@ namespace Lucene.Net.Search { hash += (locale.GetHashCode() ^ 0x08150815); } - if (factory != null) - hash += (factory.GetHashCode() ^ 0x34987555); if (comparatorSource != null) hash += comparatorSource.GetHashCode(); if (parser != null) @@ -597,94 +479,44 @@ namespace Lucene.Net.Search switch (type) { - case SortField.SCORE: return new FieldComparator.RelevanceComparator(numHits); - case SortField.DOC: return new FieldComparator.DocComparator(numHits); - case SortField.INT: return new FieldComparator.IntComparator(numHits, field, parser); - case SortField.FLOAT: return new FieldComparator.FloatComparator(numHits, field, parser); - case SortField.LONG: return new FieldComparator.LongComparator(numHits, field, parser); - case SortField.DOUBLE: return new FieldComparator.DoubleComparator(numHits, field, parser); - case SortField.BYTE: return new FieldComparator.ByteComparator(numHits, field, parser); - case SortField.SHORT: return new FieldComparator.ShortComparator(numHits, field, parser); - case SortField.CUSTOM: - System.Diagnostics.Debug.Assert(factory == null && comparatorSource != null); + System.Diagnostics.Debug.Assert(comparatorSource != null); return comparatorSource.NewComparator(field, numHits, sortPos, reverse); - case SortField.STRING: return new FieldComparator.StringOrdValComparator(numHits, field, sortPos, reverse); - case SortField.STRING_VAL: return new FieldComparator.StringValComparator(numHits, field); - default: throw new System.SystemException("Illegal sort type: " + type); } } - - /// Attempts to detect the given field type for an IndexReader. - /// - /// - [Obsolete] - internal static int DetectFieldType(IndexReader reader, System.String fieldKey) - { - System.String field = StringHelper.Intern(fieldKey); - TermEnum enumerator = reader.Terms(new Term(field)); - try - { - Term term = enumerator.Term(); - if (term == null) - { - throw new System.SystemException("no terms in field " + field + " - cannot determine sort type"); - } - int ret = 0; - if ((System.Object) term.Field() == (System.Object) field) - { - System.String termtext = term.Text().Trim(); - - int tmpI32; long tmpI64; float tmpF; - if (System.Int32.TryParse(termtext, out tmpI32)) ret = SortField.INT; - else if (System.Int64.TryParse(termtext, out tmpI64)) ret = SortField.LONG; - else if (Single.TryParse(termtext, out tmpF)) ret = SortField.FLOAT; - else ret = SortField.STRING; - } - else - { - throw new System.SystemException("field \"" + field + "\" does not appear to be indexed"); - } - return ret; - } - finally - { - enumerator.Close(); - } - } } } \ No newline at end of file Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/IndexInput.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/IndexInput.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/IndexInput.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/IndexInput.cs Thu Nov 17 03:49:32 2011 @@ -16,6 +16,7 @@ */ using System; +using Lucene.Net.Support; namespace Lucene.Net.Store { @@ -262,7 +263,7 @@ namespace Lucene.Net.Store // returns Map public virtual System.Collections.Generic.IDictionary ReadStringStringMap() { - System.Collections.Generic.Dictionary map = new System.Collections.Generic.Dictionary(); + var map = new HashMap(); int count = ReadInt(); for (int i = 0; i < count; i++) { Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/SimpleFSLockFactory.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/SimpleFSLockFactory.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/SimpleFSLockFactory.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Store/SimpleFSLockFactory.cs Thu Nov 17 03:49:32 2011 @@ -75,9 +75,8 @@ namespace Lucene.Net.Store /// where lock files should be created. /// public SimpleFSLockFactory(System.String lockDirName) + : this(new System.IO.DirectoryInfo(lockDirName)) { - lockDir = new System.IO.DirectoryInfo(lockDirName); - SetLockDir(lockDir); } public override Lock MakeLock(System.String lockName) Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Support/FileSupport.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Support/FileSupport.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Support/FileSupport.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Support/FileSupport.cs Thu Nov 17 03:49:32 2011 @@ -26,10 +26,12 @@ namespace Lucene.Net.Support else return null; } - + + // TODO: This filesupport thing is silly. Same goes with _TestUtil's RMDir. + // If we're removing a directory public static System.IO.FileInfo[] GetFiles(System.IO.DirectoryInfo path) { - return path.GetFiles(); + return GetFiles(new FileInfo(path.FullName)); } /// Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/CloseableThreadLocal.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/CloseableThreadLocal.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/CloseableThreadLocal.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/src/core/Util/CloseableThreadLocal.cs Thu Nov 17 03:49:32 2011 @@ -17,6 +17,7 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using Lucene.Net.Support; @@ -96,14 +97,14 @@ namespace Lucene.Net.Util { //hardRefs[Thread.CurrentThread] = @object; hardRefs.Add(Thread.CurrentThread, @object); - + + // Java's iterator can remove, .NET's cannot + var threadsToRemove = hardRefs.Keys.Where(thread => !thread.IsAlive).ToList(); // Purge dead threads - foreach (var thread in hardRefs.Keys) + foreach (var thread in threadsToRemove) { - if (!thread.IsAlive) - hardRefs.Remove(thread); + hardRefs.Remove(thread); } - } } Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestIndexWriter.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestIndexWriter.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestIndexWriter.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestIndexWriter.cs Thu Nov 17 03:49:32 2011 @@ -2812,14 +2812,14 @@ namespace Lucene.Net.Index if (ioe.Message.StartsWith("fake disk full at") || ioe.Message.Equals("now failing on purpose")) { diskFull = true; - try - { + //try + //{ System.Threading.Thread.Sleep(new System.TimeSpan((System.Int64)10000 * 1)); - } - catch (System.Threading.ThreadInterruptedException ie) - { - throw; - } + //} + //catch (System.Threading.ThreadInterruptedException ie) + //{ + // throw; + //} if (fullCount++ >= 5) break; } @@ -3627,7 +3627,7 @@ namespace Lucene.Net.Index writer.AddDocument(document); writer.Close(); - IndexReader ir = IndexReader.Open(dir, true); + IndexReader ir = IndexReader.Open(dir, false); Assert.AreEqual(10, ir.MaxDoc()); Assert.AreEqual(10, ir.NumDocs()); ir.DeleteDocument(0); @@ -3641,7 +3641,7 @@ namespace Lucene.Net.Index writer.ExpungeDeletes(); Assert.AreEqual(8, writer.NumDocs()); writer.Close(); - ir = IndexReader.Open(dir); + ir = IndexReader.Open(dir, true); Assert.AreEqual(8, ir.MaxDoc()); Assert.AreEqual(8, ir.NumDocs()); ir.Close(); @@ -3669,7 +3669,7 @@ namespace Lucene.Net.Index writer.AddDocument(document); writer.Close(); - IndexReader ir = IndexReader.Open(dir, true); + IndexReader ir = IndexReader.Open(dir, false); Assert.AreEqual(98, ir.MaxDoc()); Assert.AreEqual(98, ir.NumDocs()); for (int i = 0; i < 98; i += 2) @@ -5782,7 +5782,7 @@ namespace Lucene.Net.Index w.AddDocument(doc); // commit to "first" - Dictionary commitData = new Dictionary(); + IDictionary commitData = new HashMap(); commitData["tag"]="first"; w.Commit(commitData); @@ -5796,7 +5796,9 @@ namespace Lucene.Net.Index IndexCommit commit = null; foreach(var c in IndexReader.ListCommits(dir)) { - string tag = c.GetUserData()["tag"]; + //string tag = c.GetUserData()["tag"]; + var thing = c.GetUserData(); + string tag = thing["tag"]; if ("first".Equals(tag)) { commit = c; Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestParallelReader.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestParallelReader.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestParallelReader.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Index/TestParallelReader.cs Thu Nov 17 03:49:32 2011 @@ -77,8 +77,8 @@ namespace Lucene.Net.Index Directory dir1 = GetDir1(); Directory dir2 = GetDir2(); ParallelReader pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir1, false)); + pr.Add(IndexReader.Open(dir2, false)); System.Collections.Generic.ICollection fieldNames = pr.GetFieldNames(IndexReader.FieldOption.ALL); Assert.AreEqual(4, fieldNames.Count); Assert.IsTrue(CollectionsHelper.Contains(fieldNames, "f1")); @@ -93,8 +93,8 @@ namespace Lucene.Net.Index Directory dir1 = GetDir1(); Directory dir2 = GetDir2(); ParallelReader pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir1, false)); + pr.Add(IndexReader.Open(dir2, false)); Document doc11 = pr.Document(0, new MapFieldSelector(new System.String[]{"f1"})); Document doc24 = pr.Document(1, new MapFieldSelector(new System.Collections.ArrayList(new System.String[]{"f4"}))); @@ -125,10 +125,10 @@ namespace Lucene.Net.Index w2.Close(); ParallelReader pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); + pr.Add(IndexReader.Open(dir1, false)); try { - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir2, false)); Assert.Fail("didn't get exptected exception: indexes don't have same number of documents"); } catch (System.ArgumentException e) @@ -143,19 +143,19 @@ namespace Lucene.Net.Index Directory dir1 = GetDir1(); Directory dir2 = GetDir2(); ParallelReader pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir1, false)); + pr.Add(IndexReader.Open(dir2, false)); Assert.IsTrue(pr.IsCurrent()); - IndexReader modifier = IndexReader.Open(dir1); + IndexReader modifier = IndexReader.Open(dir1, false); modifier.SetNorm(0, "f1", 100); modifier.Close(); // one of the two IndexReaders which ParallelReader is using // is not current anymore Assert.IsFalse(pr.IsCurrent()); - - modifier = IndexReader.Open(dir2); + + modifier = IndexReader.Open(dir2, false); modifier.SetNorm(0, "f3", 100); modifier.Close(); @@ -184,8 +184,8 @@ namespace Lucene.Net.Index ParallelReader pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir1, false)); + pr.Add(IndexReader.Open(dir2, false)); Assert.IsFalse(pr.IsOptimized()); pr.Close(); @@ -194,8 +194,8 @@ namespace Lucene.Net.Index modifier.Close(); pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir1, false)); + pr.Add(IndexReader.Open(dir2, false)); // just one of the two indexes are optimized Assert.IsFalse(pr.IsOptimized()); pr.Close(); @@ -206,8 +206,8 @@ namespace Lucene.Net.Index modifier.Close(); pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir1, false)); + pr.Add(IndexReader.Open(dir2, false)); // now both indexes are optimized Assert.IsTrue(pr.IsOptimized()); pr.Close(); @@ -219,8 +219,8 @@ namespace Lucene.Net.Index Directory dir1 = GetDir1(); Directory dir2 = GetDir2(); ParallelReader pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir1, false)); + pr.Add(IndexReader.Open(dir2, false)); int NUM_DOCS = 2; TermDocs td = pr.TermDocs(null); for (int i = 0; i < NUM_DOCS; i++) @@ -271,8 +271,8 @@ namespace Lucene.Net.Index d2.Add(new Field("f4", "v2", Field.Store.YES, Field.Index.ANALYZED)); w.AddDocument(d2); w.Close(); - - return new IndexSearcher(dir); + + return new IndexSearcher(dir, false); } // Fields 1 & 2 in one index, 3 & 4 in other, with ParallelReader: @@ -281,8 +281,8 @@ namespace Lucene.Net.Index Directory dir1 = GetDir1(); Directory dir2 = GetDir2(); ParallelReader pr = new ParallelReader(); - pr.Add(IndexReader.Open(dir1)); - pr.Add(IndexReader.Open(dir2)); + pr.Add(IndexReader.Open(dir1, false)); + pr.Add(IndexReader.Open(dir2, false)); return new IndexSearcher(pr); } Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestCustomSearcherSort.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestCustomSearcherSort.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestCustomSearcherSort.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestCustomSearcherSort.cs Thu Nov 17 03:49:32 2011 @@ -118,7 +118,7 @@ namespace Lucene.Net.Search { // log("Run testFieldSortSingleSearcher"); // define the sort criteria - Sort custSort = new Sort(new SortField("publicationDate_"), SortField.FIELD_SCORE); + Sort custSort = new Sort(new SortField("publicationDate_", SortField.STRING), SortField.FIELD_SCORE); Searcher searcher = new MultiSearcher(new Searcher[]{new CustomSearcher(this, index, 2)}); // search and check hits MatchHits(searcher, custSort); @@ -129,7 +129,7 @@ namespace Lucene.Net.Search { // log("Run testFieldSortMultiCustomSearcher"); // define the sort criteria - Sort custSort = new Sort(new SortField("publicationDate_"), SortField.FIELD_SCORE); + Sort custSort = new Sort(new SortField("publicationDate_", SortField.STRING), SortField.FIELD_SCORE); Searcher searcher = new MultiSearcher(new Searchable[]{new CustomSearcher(this, index, 0), new CustomSearcher(this, index, 2)}); // search and check hits MatchHits(searcher, custSort); @@ -231,10 +231,12 @@ namespace Lucene.Net.Search } private int switcher; - /// - /// - /// IOException - public CustomSearcher(TestCustomSearcherSort enclosingInstance, Directory directory, int switcher):base(directory) + + /// + /// + /// IOException + public CustomSearcher(TestCustomSearcherSort enclosingInstance, Directory directory, int switcher) + : base(directory, true) { InitBlock(enclosingInstance); this.switcher = switcher; Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestSetNorm.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestSetNorm.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestSetNorm.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestSetNorm.cs Thu Nov 17 03:49:32 2011 @@ -97,7 +97,7 @@ namespace Lucene.Net.Search writer.Close(); // reset the boost of each instance of this document - IndexReader reader = IndexReader.Open(store); + IndexReader reader = IndexReader.Open(store, false); reader.SetNorm(0, "field", 1.0f); reader.SetNorm(1, "field", 2.0f); reader.SetNorm(2, "field", 4.0f); @@ -107,7 +107,7 @@ namespace Lucene.Net.Search // check that searches are ordered by this boost float[] scores = new float[4]; - new IndexSearcher(store).Search(new TermQuery(new Term("field", "word")), new AnonymousClassCollector(scores, this)); + new IndexSearcher(store, true).Search(new TermQuery(new Term("field", "word")), new AnonymousClassCollector(scores, this)); float lastScore = 0.0f; Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestTermRangeQuery.cs URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestTermRangeQuery.cs?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestTermRangeQuery.cs (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/Search/TestTermRangeQuery.cs Thu Nov 17 03:49:32 2011 @@ -33,12 +33,9 @@ using LuceneTestCase = Lucene.Net.Util.L namespace Lucene.Net.Search { - - [TestFixture] public class TestTermRangeQuery:LuceneTestCase { - private int docCount = 0; private RAMDirectory dir; @@ -54,62 +51,43 @@ namespace Lucene.Net.Search { Query query = new TermRangeQuery("content", "A", "C", false, false); InitializeIndex(new System.String[]{"A", "B", "C", "D"}); - IndexSearcher searcher = new IndexSearcher(dir); + IndexSearcher searcher = new IndexSearcher(dir, true); ScoreDoc[] hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(1, hits.Length, "A,B,C,D, only B in range"); searcher.Close(); InitializeIndex(new System.String[]{"A", "B", "D"}); - searcher = new IndexSearcher(dir); + searcher = new IndexSearcher(dir, true); hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(1, hits.Length, "A,B,D, only B in range"); searcher.Close(); AddDoc("C"); - searcher = new IndexSearcher(dir); + searcher = new IndexSearcher(dir, true); hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(1, hits.Length, "C added, still only B in range"); searcher.Close(); } - //TODO: remove in Lucene 3.0 - [Test] - public virtual void TestDeprecatedCstrctors() - { - Query query = new RangeQuery(null, new Term("content", "C"), false); - InitializeIndex(new System.String[]{"A", "B", "C", "D"}); - IndexSearcher searcher = new IndexSearcher(dir); - ScoreDoc[] hits = searcher.Search(query, null, 1000).ScoreDocs; - Assert.AreEqual(2, hits.Length, "A,B,C,D, only B in range"); - searcher.Close(); - - query = new RangeQuery(new Term("content", "C"), null, false); - InitializeIndex(new System.String[]{"A", "B", "C", "D"}); - searcher = new IndexSearcher(dir); - hits = searcher.Search(query, null, 1000).ScoreDocs; - Assert.AreEqual(1, hits.Length, "A,B,C,D, only B in range"); - searcher.Close(); - } - [Test] public virtual void TestInclusive() { Query query = new TermRangeQuery("content", "A", "C", true, true); InitializeIndex(new System.String[]{"A", "B", "C", "D"}); - IndexSearcher searcher = new IndexSearcher(dir); + IndexSearcher searcher = new IndexSearcher(dir, true); ScoreDoc[] hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(3, hits.Length, "A,B,C,D - A,B,C in range"); searcher.Close(); InitializeIndex(new System.String[]{"A", "B", "D"}); - searcher = new IndexSearcher(dir); + searcher = new IndexSearcher(dir, true); hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(2, hits.Length, "A,B,D - A and B in range"); searcher.Close(); AddDoc("C"); - searcher = new IndexSearcher(dir); + searcher = new IndexSearcher(dir, true); hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(3, hits.Length, "C added - A, B, C in range"); searcher.Close(); @@ -168,19 +146,19 @@ namespace Lucene.Net.Search { Query query = new TermRangeQuery("content", "A", "C", false, false, new System.Globalization.CultureInfo("en").CompareInfo); InitializeIndex(new System.String[]{"A", "B", "C", "D"}); - IndexSearcher searcher = new IndexSearcher(dir); + IndexSearcher searcher = new IndexSearcher(dir, true); ScoreDoc[] hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(1, hits.Length, "A,B,C,D, only B in range"); searcher.Close(); InitializeIndex(new System.String[]{"A", "B", "D"}); - searcher = new IndexSearcher(dir); + searcher = new IndexSearcher(dir, true); hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(1, hits.Length, "A,B,D, only B in range"); searcher.Close(); AddDoc("C"); - searcher = new IndexSearcher(dir); + searcher = new IndexSearcher(dir, true); hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(1, hits.Length, "C added, still only B in range"); searcher.Close(); @@ -192,19 +170,19 @@ namespace Lucene.Net.Search Query query = new TermRangeQuery("content", "A", "C", true, true, new System.Globalization.CultureInfo("en").CompareInfo); InitializeIndex(new System.String[]{"A", "B", "C", "D"}); - IndexSearcher searcher = new IndexSearcher(dir); + IndexSearcher searcher = new IndexSearcher(dir, true); ScoreDoc[] hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(3, hits.Length, "A,B,C,D - A,B,C in range"); searcher.Close(); InitializeIndex(new System.String[]{"A", "B", "D"}); - searcher = new IndexSearcher(dir); + searcher = new IndexSearcher(dir, true); hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(2, hits.Length, "A,B,D - A and B in range"); searcher.Close(); AddDoc("C"); - searcher = new IndexSearcher(dir); + searcher = new IndexSearcher(dir, true); hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(3, hits.Length, "C added - A, B, C in range"); searcher.Close(); @@ -223,7 +201,7 @@ namespace Lucene.Net.Search // index Term below should NOT be returned by a TermRangeQuery with a Farsi // Collator (or an Arabic one for the case when Farsi is not supported). InitializeIndex(new System.String[]{"\u0633\u0627\u0628"}); - IndexSearcher searcher = new IndexSearcher(dir); + IndexSearcher searcher = new IndexSearcher(dir, true); ScoreDoc[] hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(0, hits.Length, "The index Term should not be included."); @@ -245,7 +223,7 @@ namespace Lucene.Net.Search // Unicode order would not include "H\u00C5T" in [ "H\u00D8T", "MAND" ], // but Danish collation does. InitializeIndex(words); - IndexSearcher searcher = new IndexSearcher(dir); + IndexSearcher searcher = new IndexSearcher(dir, true); ScoreDoc[] hits = searcher.Search(query, null, 1000).ScoreDocs; Assert.AreEqual(1, hits.Length, "The index Term should be included."); @@ -271,7 +249,7 @@ namespace Lucene.Net.Search public override bool IncrementToken() { - int count = input.Read((System.Char[]) buffer, 0, buffer.Length); + int count = input.Read(buffer, 0, buffer.Length); if (done) return false; else @@ -356,27 +334,27 @@ namespace Lucene.Net.Search //http://issues.apache.org/jira/browse/LUCENE-38 Query query = new TermRangeQuery("content", null, "C", false, false); InitializeIndex(new System.String[]{"A", "B", "", "C", "D"}, analyzer); - IndexSearcher searcher = new IndexSearcher(dir); - Hits hits = searcher.Search(query); + IndexSearcher searcher = new IndexSearcher(dir, true); + int numHits = searcher.Search(query, null, 1000).TotalHits; // When Lucene-38 is fixed, use the assert on the next line: - Assert.AreEqual(3, hits.Length(), "A,B,,C,D => A, B & are in range"); + Assert.AreEqual(3, numHits, "A,B,,C,D => A, B & are in range"); // until Lucene-38 is fixed, use this assert: //Assert.AreEqual(2, hits.length(),"A,B,,C,D => A, B & are in range"); searcher.Close(); InitializeIndex(new System.String[]{"A", "B", "", "D"}, analyzer); - searcher = new IndexSearcher(dir); - hits = searcher.Search(query); + searcher = new IndexSearcher(dir, true); + numHits = searcher.Search(query, null, 1000).TotalHits; // When Lucene-38 is fixed, use the assert on the next line: - Assert.AreEqual(3, hits.Length(), "A,B,,D => A, B & are in range"); + Assert.AreEqual(3, numHits, "A,B,,D => A, B & are in range"); // until Lucene-38 is fixed, use this assert: //Assert.AreEqual(2, hits.length(), "A,B,,D => A, B & are in range"); searcher.Close(); AddDoc("C"); - searcher = new IndexSearcher(dir); - hits = searcher.Search(query); + searcher = new IndexSearcher(dir, true); + numHits = searcher.Search(query, null, 1000).TotalHits; // When Lucene-38 is fixed, use the assert on the next line: - Assert.AreEqual(3, hits.Length(), "C added, still A, B & are in range"); + Assert.AreEqual(3, numHits, "C added, still A, B & are in range"); // until Lucene-38 is fixed, use this assert //Assert.AreEqual(2, hits.length(), "C added, still A, B & are in range"); searcher.Close(); @@ -390,26 +368,26 @@ namespace Lucene.Net.Search Analyzer analyzer = new SingleCharAnalyzer(); Query query = new TermRangeQuery("content", null, "C", true, true); InitializeIndex(new System.String[]{"A", "B", "", "C", "D"}, analyzer); - IndexSearcher searcher = new IndexSearcher(dir); - Hits hits = searcher.Search(query); + IndexSearcher searcher = new IndexSearcher(dir, true); + int numHits = searcher.Search(query, null, 1000).TotalHits; // When Lucene-38 is fixed, use the assert on the next line: - Assert.AreEqual(4, hits.Length(), "A,B,,C,D => A,B,,C in range"); + Assert.AreEqual(4, numHits, "A,B,,C,D => A,B,,C in range"); // until Lucene-38 is fixed, use this assert //Assert.AreEqual(3, hits.length(), "A,B,,C,D => A,B,,C in range"); searcher.Close(); InitializeIndex(new System.String[]{"A", "B", "", "D"}, analyzer); - searcher = new IndexSearcher(dir); - hits = searcher.Search(query); + searcher = new IndexSearcher(dir, true); + numHits = searcher.Search(query, null, 1000).TotalHits; // When Lucene-38 is fixed, use the assert on the next line: - Assert.AreEqual(3, hits.Length(), "A,B,,D - A, B and in range"); + Assert.AreEqual(3, numHits, "A,B,,D - A, B and in range"); // until Lucene-38 is fixed, use this assert //Assert.AreEqual(2, hits.length(), "A,B,,D => A, B and in range"); searcher.Close(); AddDoc("C"); - searcher = new IndexSearcher(dir); - hits = searcher.Search(query); + searcher = new IndexSearcher(dir, true); + numHits = searcher.Search(query, null, 1000).TotalHits; // When Lucene-38 is fixed, use the assert on the next line: - Assert.AreEqual(4, hits.Length(), "C added => A,B,,C in range"); + Assert.AreEqual(4, numHits, "C added => A,B,,C in range"); // until Lucene-38 is fixed, use this assert //Assert.AreEqual(3, hits.length(), "C added => A,B,,C in range"); searcher.Close(); Modified: incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/UpdatedTests.txt URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/UpdatedTests.txt?rev=1203041&r1=1203040&r2=1203041&view=diff ============================================================================== --- incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/UpdatedTests.txt (original) +++ incubator/lucene.net/branches/Lucene.Net.3.0.3/trunk/test/core/UpdatedTests.txt Thu Nov 17 03:49:32 2011 @@ -83,7 +83,7 @@ index\TestNewestSegment.java - IDENTICAL index\TestNorms.java - DONE index\TestNRTReaderWithThreads.java - Text files are different index\TestOmitTf.java - DONE -index\TestParallelReader.java - Text files are different +index\TestParallelReader.java - DONE index\TestParallelReaderEmptyIndex.java - IDENTICAL index\TestParallelTermEnum.java - Text files are different index\TestPayloads.java - DONE @@ -204,7 +204,7 @@ search\TestSort.java - DONE search\TestSpanQueryFilter.java - Text files are different search\TestStressSort.java - REMOVED search\TestTermRangeFilter.java - DONE -search\TestTermRangeQuery.java - Text files are different +search\TestTermRangeQuery.java - DONE search\TestTermScorer.java - Text files are different search\TestTermVectors.java - DONE search\TestThreadSafe.java - DONE