You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by cc...@apache.org on 2012/02/28 23:43:28 UTC
[Lucene.Net] svn commit: r1294875 [41/45] - in /incubator/lucene.net/trunk: ./ build/
build/vs2010/contrib/ build/vs2010/test/ doc/ src/ src/contrib/Analyzers/
src/contrib/Analyzers/AR/ src/contrib/Analyzers/BR/
src/contrib/Analyzers/CJK/ src/contrib/Analyzers/Cn/ ...
Modified: incubator/lucene.net/trunk/test/core/Search/TestBoolean2.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestBoolean2.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestBoolean2.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestBoolean2.cs Tue Feb 28 22:43:08 2012
@@ -16,7 +16,8 @@
*/
using System;
-
+using Lucene.Net.Index;
+using Lucene.Net.Store;
using NUnit.Framework;
using WhitespaceAnalyzer = Lucene.Net.Analysis.WhitespaceAnalyzer;
@@ -64,8 +65,13 @@ namespace Lucene.Net.Search
}
}
private IndexSearcher searcher;
+ private IndexSearcher bigSearcher;
+ private IndexReader reader;
+ private static int NUM_EXTRA_DOCS = 6000;
public const System.String field = "field";
+ private Directory dir2;
+ private int mulFactor;
[SetUp]
public override void SetUp()
@@ -75,55 +81,84 @@ namespace Lucene.Net.Search
IndexWriter writer = new IndexWriter(directory, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
for (int i = 0; i < docFields.Length; i++)
{
- Document doc = new Document();
- doc.Add(new Field(field, docFields[i], Field.Store.NO, Field.Index.ANALYZED));
- writer.AddDocument(doc);
+ Document document = new Document();
+ document.Add(new Field(field, docFields[i], Field.Store.NO, Field.Index.ANALYZED));
+ writer.AddDocument(document);
}
writer.Close();
- searcher = new IndexSearcher(directory);
+ searcher = new IndexSearcher(directory, true);
+
+ // Make big index
+ dir2 = new MockRAMDirectory(directory);
+
+ // First multiply small test index:
+ mulFactor = 1;
+ int docCount = 0;
+ do
+ {
+ Directory copy = new RAMDirectory(dir2);
+ IndexWriter indexWriter = new IndexWriter(dir2, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED);
+ indexWriter.AddIndexesNoOptimize(new[] {copy});
+ docCount = indexWriter.MaxDoc();
+ indexWriter.Close();
+ mulFactor *= 2;
+ } while (docCount < 3000);
+
+ IndexWriter w = new IndexWriter(dir2, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED);
+ Document doc = new Document();
+ doc.Add(new Field("field2", "xxx", Field.Store.NO, Field.Index.ANALYZED));
+ for (int i = 0; i < NUM_EXTRA_DOCS / 2; i++)
+ {
+ w.AddDocument(doc);
+ }
+ doc = new Document();
+ doc.Add(new Field("field2", "big bad bug", Field.Store.NO, Field.Index.ANALYZED));
+ for (int i = 0; i < NUM_EXTRA_DOCS / 2; i++)
+ {
+ w.AddDocument(doc);
+ }
+ // optimize to 1 segment
+ w.Optimize();
+ reader = w.GetReader();
+ w.Close();
+ bigSearcher = new IndexSearcher(reader);
}
[TearDown]
public override void TearDown()
{
- searcher.Close();
- searcher = null;
- GC.Collect();
- base.TearDown();
+ reader.Close();
+ dir2.Close();
}
private System.String[] docFields = new System.String[]{"w1 w2 w3 w4 w5", "w1 w3 w2 w3", "w1 xx w2 yy w3", "w1 w3 xx w2 yy w3"};
public virtual Query MakeQuery(System.String queryText)
{
- Query q = (new QueryParser(field, new WhitespaceAnalyzer())).Parse(queryText);
+ Query q = (new QueryParser(Util.Version.LUCENE_CURRENT, field, new WhitespaceAnalyzer())).Parse(queryText);
return q;
}
-
- public virtual void QueriesTest(System.String queryText, int[] expDocNrs)
- {
- //System.out.println();
- //System.out.println("Query: " + queryText);
- try
- {
- Query query1 = MakeQuery(queryText);
- BooleanQuery.SetAllowDocsOutOfOrder(true);
- ScoreDoc[] hits1 = searcher.Search(query1, null, 1000).ScoreDocs;
-
- Query query2 = MakeQuery(queryText); // there should be no need to parse again...
- BooleanQuery.SetAllowDocsOutOfOrder(false);
- ScoreDoc[] hits2 = searcher.Search(query2, null, 1000).ScoreDocs;
-
- CheckHits.CheckHitsQuery(query2, hits1, hits2, expDocNrs);
- }
- finally
- {
- // even when a test fails.
- BooleanQuery.SetAllowDocsOutOfOrder(false);
- }
- }
-
- [Test]
+
+ public virtual void QueriesTest(System.String queryText, int[] expDocNrs)
+ {
+ //System.out.println();
+ //System.out.println("Query: " + queryText);
+ Query query1 = MakeQuery(queryText);
+ TopScoreDocCollector collector = TopScoreDocCollector.create(1000, false);
+ searcher.Search(query1, null, collector);
+ ScoreDoc[] hits1 = collector.TopDocs().ScoreDocs;
+
+ Query query2 = MakeQuery(queryText); // there should be no need to parse again...
+ collector = TopScoreDocCollector.create(1000, true);
+ searcher.Search(query2, null, collector);
+ ScoreDoc[] hits2 = collector.TopDocs().ScoreDocs;
+
+ Assert.AreEqual(mulFactor*collector.totalHits, bigSearcher.Search(query1, 1).TotalHits);
+
+ CheckHits.CheckHitsQuery(query2, hits1, hits2, expDocNrs);
+ }
+
+ [Test]
public virtual void TestQueries01()
{
System.String queryText = "+w3 +xx";
@@ -221,22 +256,29 @@ namespace Lucene.Net.Search
for (int i = 0; i < 1000; i++)
{
int level = rnd.Next(3);
- q1 = RandBoolQuery(new System.Random((System.Int32) rnd.Next(System.Int32.MaxValue)), level, field, vals, null);
+ q1 = RandBoolQuery(new System.Random(rnd.Next(System.Int32.MaxValue)), rnd.Next(0, 2) == 0 ? false : true, level, field, vals, null);
// Can't sort by relevance since floating point numbers may not quite
// match up.
Sort sort = Sort.INDEXORDER;
- BooleanQuery.SetAllowDocsOutOfOrder(false);
-
QueryUtils.Check(q1, searcher);
-
- ScoreDoc[] hits1 = searcher.Search(q1, null, 1000, sort).ScoreDocs;
-
- BooleanQuery.SetAllowDocsOutOfOrder(true);
- ScoreDoc[] hits2 = searcher.Search(q1, null, 1000, sort).ScoreDocs;
+
+ TopFieldCollector collector = TopFieldCollector.create(sort, 1000, false, true, true, true);
+ searcher.Search(q1, null, collector);
+ ScoreDoc[] hits1 = collector.TopDocs().ScoreDocs;
+
+ collector = TopFieldCollector.create(sort, 1000, false, true, true, false);
+ searcher.Search(q1, null, collector);
+ ScoreDoc[] hits2 = collector.TopDocs().ScoreDocs;
tot += hits2.Length;
CheckHits.CheckEqual(q1, hits1, hits2);
+
+ BooleanQuery q3 = new BooleanQuery();
+ q3.Add(q1, BooleanClause.Occur.SHOULD);
+ q3.Add(new PrefixQuery(new Term("field2", "b")), BooleanClause.Occur.SHOULD);
+ TopDocs hits4 = bigSearcher.Search(q3, 1);
+ Assert.AreEqual(mulFactor*collector.totalHits + NUM_EXTRA_DOCS/2, hits4.TotalHits);
}
}
catch (System.Exception e)
@@ -245,11 +287,6 @@ namespace Lucene.Net.Search
System.Console.Out.WriteLine("failed query: " + q1);
throw e;
}
- finally
- {
- // even when a test fails.
- BooleanQuery.SetAllowDocsOutOfOrder(false);
- }
// System.out.println("Total hits:"+tot);
}
@@ -264,7 +301,7 @@ namespace Lucene.Net.Search
// Random rnd is passed in so that the exact same random query may be created
// more than once.
- public static BooleanQuery RandBoolQuery(System.Random rnd, int level, System.String field, System.String[] vals, TestBoolean2.Callback cb)
+ public static BooleanQuery RandBoolQuery(System.Random rnd, bool allowMust, int level, System.String field, System.String[] vals, TestBoolean2.Callback cb)
{
BooleanQuery current = new BooleanQuery(rnd.Next() < 0);
for (int i = 0; i < rnd.Next(vals.Length) + 1; i++)
@@ -275,19 +312,33 @@ namespace Lucene.Net.Search
qType = rnd.Next(10);
}
Query q;
- if (qType < 7)
- q = new TermQuery(new Term(field, vals[rnd.Next(vals.Length)]));
- else
- q = RandBoolQuery(rnd, level - 1, field, vals, cb);
-
- int r = rnd.Next(10);
+ if (qType < 3)
+ {
+ q = new TermQuery(new Term(field, vals[rnd.Next(vals.Length)]));
+ }
+ else if (qType < 7)
+ {
+ q = new WildcardQuery(new Term(field, "w*"));
+ }
+ else
+ {
+ q = RandBoolQuery(rnd, allowMust, level - 1, field, vals, cb);
+ }
+
+ int r = rnd.Next(10);
BooleanClause.Occur occur;
- if (r < 2)
- occur = BooleanClause.Occur.MUST_NOT;
- else if (r < 5)
- occur = BooleanClause.Occur.MUST;
- else
- occur = BooleanClause.Occur.SHOULD;
+ if (r < 2)
+ {
+ occur = BooleanClause.Occur.MUST_NOT;
+ }
+ else if (r < 5)
+ {
+ occur = allowMust ? BooleanClause.Occur.MUST : BooleanClause.Occur.SHOULD;
+ }
+ else
+ {
+ occur = BooleanClause.Occur.SHOULD;
+ }
current.Add(q, occur);
}
Modified: incubator/lucene.net/trunk/test/core/Search/TestBooleanMinShouldMatch.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestBooleanMinShouldMatch.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestBooleanMinShouldMatch.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestBooleanMinShouldMatch.cs Tue Feb 28 22:43:08 2012
@@ -101,7 +101,7 @@ namespace Lucene.Net.Search
writer.Optimize();
writer.Close();
- r = IndexReader.Open(index);
+ r = IndexReader.Open(index, true);
s = new IndexSearcher(r);
//System.out.println("Set up " + getName());
@@ -370,9 +370,9 @@ namespace Lucene.Net.Search
{
int lev = rnd.Next(maxLev);
long seed = rnd.Next(System.Int32.MaxValue);
- BooleanQuery q1 = TestBoolean2.RandBoolQuery(new System.Random((System.Int32) seed), lev, field, vals, null);
+ BooleanQuery q1 = TestBoolean2.RandBoolQuery(new System.Random((System.Int32) seed), true, lev, field, vals, null);
// BooleanQuery q2 = TestBoolean2.randBoolQuery(new Random(seed), lev, field, vals, minNrCB);
- BooleanQuery q2 = TestBoolean2.RandBoolQuery(new System.Random((System.Int32) seed), lev, field, vals, null);
+ BooleanQuery q2 = TestBoolean2.RandBoolQuery(new System.Random((System.Int32) seed), true, lev, field, vals, null);
// only set minimumNumberShouldMatch on the top level query since setting
// at a lower level can change the score.
minNrCB.PostCreate(q2);
Modified: incubator/lucene.net/trunk/test/core/Search/TestBooleanOr.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestBooleanOr.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestBooleanOr.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestBooleanOr.cs Tue Feb 28 22:43:08 2012
@@ -139,13 +139,12 @@ namespace Lucene.Net.Search
public override void SetUp()
{
base.SetUp();
- base.SetUp();
//
RAMDirectory rd = new RAMDirectory();
//
- IndexWriter writer = new IndexWriter(rd, new StandardAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
+ IndexWriter writer = new IndexWriter(rd, new StandardAnalyzer(Util.Version.LUCENE_CURRENT), true, IndexWriter.MaxFieldLength.LIMITED);
//
Document d = new Document();
@@ -157,7 +156,7 @@ namespace Lucene.Net.Search
writer.Close();
//
- searcher = new IndexSearcher(rd);
+ searcher = new IndexSearcher(rd, true);
}
}
}
\ No newline at end of file
Modified: incubator/lucene.net/trunk/test/core/Search/TestBooleanPrefixQuery.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestBooleanPrefixQuery.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestBooleanPrefixQuery.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestBooleanPrefixQuery.cs Tue Feb 28 22:43:08 2012
@@ -32,10 +32,6 @@ namespace Lucene.Net.Search
{
/// <summary> </summary>
- /// <version> $Id: TestBooleanPrefixQuery.java 808519 2009-08-27 16:57:27Z mikemccand $
- ///
- /// </version>
-
[TestFixture]
public class TestBooleanPrefixQuery:LuceneTestCase
{
@@ -97,8 +93,8 @@ namespace Lucene.Net.Search
writer.AddDocument(doc);
}
writer.Close();
-
- reader = IndexReader.Open(directory);
+
+ reader = IndexReader.Open(directory, true);
PrefixQuery query = new PrefixQuery(new Term("category", "foo"));
rw1 = query.Rewrite(reader);
Modified: incubator/lucene.net/trunk/test/core/Search/TestBooleanQuery.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestBooleanQuery.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestBooleanQuery.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestBooleanQuery.cs Tue Feb 28 22:43:08 2012
@@ -81,11 +81,37 @@ namespace Lucene.Net.Search
Document doc = new Document();
doc.Add(new Field("field", "a b c d", Field.Store.NO, Field.Index.ANALYZED));
w.AddDocument(doc);
+
IndexReader r = w.GetReader();
IndexSearcher s = new IndexSearcher(r);
BooleanQuery q = new BooleanQuery();
q.Add(new TermQuery(new Term("field", "a")), BooleanClause.Occur.SHOULD);
-
+
+ // LUCENE-2617: make sure that a term not in the index still contributes to the score via coord factor
+ float score = s.Search(q, 10).GetMaxScore();
+ Query subQuery = new TermQuery(new Term("field", "not_in_index"));
+ subQuery.SetBoost(0);
+ q.Add(subQuery, BooleanClause.Occur.SHOULD);
+ float score2 = s.Search(q, 10).GetMaxScore();
+ Assert.AreEqual(score * .5, score2, 1e-6);
+
+ // LUCENE-2617: make sure that a clause not in the index still contributes to the score via coord factor
+ BooleanQuery qq = (BooleanQuery)q.Clone();
+ PhraseQuery phrase = new PhraseQuery();
+ phrase.Add(new Term("field", "not_in_index"));
+ phrase.Add(new Term("field", "another_not_in_index"));
+ phrase.SetBoost(0);
+ qq.Add(phrase, BooleanClause.Occur.SHOULD);
+ score2 = s.Search(qq, 10).GetMaxScore();
+ Assert.AreEqual(score * (1.0 / 3), score2, 1e-6);
+
+ // now test BooleanScorer2
+ subQuery = new TermQuery(new Term("field", "b"));
+ subQuery.SetBoost(0);
+ q.Add(subQuery, BooleanClause.Occur.MUST);
+ score2 = s.Search(q, 10).GetMaxScore();
+ Assert.AreEqual(score * (2.0 / 3), score2, 1e-6);
+
// PhraseQuery w/ no terms added returns a null scorer
PhraseQuery pq = new PhraseQuery();
q.Add(pq, BooleanClause.Occur.SHOULD);
Modified: incubator/lucene.net/trunk/test/core/Search/TestBooleanScorer.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestBooleanScorer.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestBooleanScorer.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestBooleanScorer.cs Tue Feb 28 22:43:08 2012
@@ -16,7 +16,7 @@
*/
using System;
-
+using System.Collections.Generic;
using NUnit.Framework;
using WhitespaceAnalyzer = Lucene.Net.Analysis.WhitespaceAnalyzer;
@@ -29,10 +29,6 @@ using LuceneTestCase = Lucene.Net.Util.L
namespace Lucene.Net.Search
{
-
- /// <summary> </summary>
- /// <version> $rcs = ' $Id: TestBooleanScorer.java 782410 2009-06-07 16:58:41Z mikemccand $ ' ;
- /// </version>
[TestFixture]
public class TestBooleanScorer:LuceneTestCase
{
@@ -56,49 +52,24 @@ namespace Lucene.Net.Search
InitBlock(enclosingInstance);
}
private int doc = - 1;
- public override Explanation Explain(int doc)
- {
- return null;
- }
+
public override float Score()
{
return 0;
}
- /// <deprecated> delete in 3.0.
- /// </deprecated>
- [Obsolete("delete in 3.0")]
- public override int Doc()
- {
- return 3000;
- }
public override int DocID()
{
return doc;
}
- /// <deprecated> delete in 3.0
- /// </deprecated>
- [Obsolete("delete in 3.0")]
- public override bool Next()
- {
- return NextDoc() != NO_MORE_DOCS;
- }
public override int NextDoc()
{
- return doc = doc == - 1?3000:NO_MORE_DOCS;
- }
-
- /// <deprecated> delete in 3.0
- /// </deprecated>
- [Obsolete("delete in 3.0")]
- public override bool SkipTo(int target)
- {
- return Advance(target) != NO_MORE_DOCS;
+ return doc = doc == -1 ? 3000 : NO_MORE_DOCS;
}
-
+
public override int Advance(int target)
{
- return doc = target <= 3000?3000:NO_MORE_DOCS;
+ return doc = target <= 3000 ? 3000 : NO_MORE_DOCS;
}
}
@@ -134,7 +105,7 @@ namespace Lucene.Net.Search
query.Add(booleanQuery1, BooleanClause.Occur.MUST);
query.Add(new TermQuery(new Term(FIELD, "9")), BooleanClause.Occur.MUST_NOT);
- IndexSearcher indexSearcher = new IndexSearcher(directory);
+ IndexSearcher indexSearcher = new IndexSearcher(directory, true);
ScoreDoc[] hits = indexSearcher.Search(query, null, 1000).ScoreDocs;
Assert.AreEqual(2, hits.Length, "Number of matched documents");
}
@@ -154,7 +125,7 @@ namespace Lucene.Net.Search
Similarity sim = Similarity.GetDefault();
Scorer[] scorers = new Scorer[]{new AnonymousClassScorer(this, sim)};
- BooleanScorer bs = new BooleanScorer(sim, 1, new System.Collections.ArrayList(scorers), null);
+ BooleanScorer bs = new BooleanScorer(sim, 1, new List<Scorer>(scorers), null);
Assert.AreEqual(3000, bs.NextDoc(), "should have received 3000");
Assert.AreEqual(DocIdSetIterator.NO_MORE_DOCS, bs.NextDoc(), "should have received NO_MORE_DOCS");
Modified: incubator/lucene.net/trunk/test/core/Search/TestCachingWrapperFilter.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestCachingWrapperFilter.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestCachingWrapperFilter.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestCachingWrapperFilter.cs Tue Feb 28 22:43:08 2012
@@ -41,7 +41,7 @@ namespace Lucene.Net.Search
IndexWriter writer = new IndexWriter(dir, new KeywordAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
writer.Close();
- IndexReader reader = IndexReader.Open(dir);
+ IndexReader reader = IndexReader.Open(dir, true);
MockFilter filter = new MockFilter();
CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
@@ -50,8 +50,7 @@ namespace Lucene.Net.Search
cacher.GetDocIdSet(reader);
Assert.IsTrue(filter.WasCalled(), "first time");
- // make sure no exception if cache is holding the wrong bitset
- cacher.Bits(reader);
+ // make sure no exception if cache is holding the wrong DocIdSet
cacher.GetDocIdSet(reader);
// second time, nested filter should not be called
@@ -100,17 +99,6 @@ namespace Lucene.Net.Search
IndexReader reader = IndexReader.Open(dir, true);
Filter filter = new AnonymousFilter2();
- //final Filter filter = new Filter() {
- // //@Override
- // public DocIdSet getDocIdSet(IndexReader reader) {
- // return new DocIdSet() {
- // //@Override
- // public DocIdSetIterator iterator() {
- // return null;
- // }
- // };
- // }
- //};
CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
// the caching filter should return the empty set constant
@@ -154,13 +142,13 @@ namespace Lucene.Net.Search
}
[Test]
- public void TestIsCacheAble()
+ public void TestIsCacheable()
{
Directory dir = new RAMDirectory();
IndexWriter writer = new IndexWriter(dir, new KeywordAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
writer.Close();
- IndexReader reader = IndexReader.Open(dir);
+ IndexReader reader = IndexReader.Open(dir, true);
// not cacheable:
assertDocIdSetCacheable(reader, new QueryWrapperFilter(new TermQuery(new Term("test", "value"))), false);
@@ -170,24 +158,10 @@ namespace Lucene.Net.Search
assertDocIdSetCacheable(reader, FieldCacheRangeFilter.NewIntRange("test", 10, 20, true, true), true);
// a openbitset filter is always cacheable
assertDocIdSetCacheable(reader, new AnonymousFilter3(), true);
- // a deprecated filter is always cacheable
- assertDocIdSetCacheable(reader, new AnonymousFilter4(), true);
reader.Close();
}
- /*
- new Filter() {
- public DocIdSet getDocIdSet(IndexReader reader) {
- return new OpenBitSet();
- }
- }
-
- * new Filter() {
- public BitSet bits(IndexReader reader) {
- return new BitSet();
- }
- }
- */
+
class AnonymousFilter3 : Filter
{
public override DocIdSet GetDocIdSet(IndexReader reader)
@@ -196,14 +170,6 @@ namespace Lucene.Net.Search
}
}
- class AnonymousFilter4 : Filter
- {
- public override System.Collections.BitArray Bits(IndexReader reader)
- {
- return new System.Collections.BitArray(100000); //DIGY
- }
- }
-
[Test]
public void TestEnforceDeletions()
{
Modified: incubator/lucene.net/trunk/test/core/Search/TestCustomSearcherSort.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestCustomSearcherSort.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestCustomSearcherSort.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestCustomSearcherSort.cs Tue Feb 28 22:43:08 2012
@@ -67,7 +67,7 @@ namespace Lucene.Net.Search
private Directory GetIndex()
{
RAMDirectory indexStore = new RAMDirectory();
- IndexWriter writer = new IndexWriter(indexStore, new StandardAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
+ IndexWriter writer = new IndexWriter(indexStore, new StandardAnalyzer(Util.Version.LUCENE_CURRENT), true, IndexWriter.MaxFieldLength.LIMITED);
RandomGen random = new RandomGen(this, NewRandom());
for (int i = 0; i < INDEX_SIZE; ++i)
{
@@ -107,7 +107,7 @@ namespace Lucene.Net.Search
{
// log("Run testFieldSortCustomSearcher");
// define the sort criteria
- Sort custSort = new Sort(new SortField[]{new SortField("publicationDate_"), SortField.FIELD_SCORE});
+ Sort custSort = new Sort(new SortField("publicationDate_", SortField.STRING), SortField.FIELD_SCORE);
Searcher searcher = new CustomSearcher(this, index, 2);
// search and check hits
MatchHits(searcher, custSort);
@@ -118,7 +118,7 @@ namespace Lucene.Net.Search
{
// log("Run testFieldSortSingleSearcher");
// define the sort criteria
- Sort custSort = new Sort(new SortField[]{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[]{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);
@@ -146,7 +146,7 @@ namespace Lucene.Net.Search
// store hits in TreeMap - TreeMap does not allow duplicates; existing entries are silently overwritten
for (int hitid = 0; hitid < hitsByRank.Length; ++hitid)
{
- resultMap[(System.Int32) hitsByRank[hitid].doc] = (System.Int32) hitid; // Value: Hits-Objekt Index
+ resultMap[hitsByRank[hitid].doc] = hitid; // Value: Hits-Objekt Index
}
// now make a query using the sort criteria
@@ -187,9 +187,9 @@ namespace Lucene.Net.Search
System.Collections.IDictionary idMap = new System.Collections.SortedList();
for (int docnum = 0; docnum < hits.Length; ++docnum)
{
- System.Int32 luceneId;
+ int luceneId;
- luceneId = (System.Int32) hits[docnum].doc;
+ luceneId = hits[docnum].doc;
if (idMap.Contains(luceneId))
{
System.Text.StringBuilder message = new System.Text.StringBuilder(prefix);
@@ -203,7 +203,7 @@ namespace Lucene.Net.Search
}
else
{
- idMap[luceneId] = (System.Int32) docnum;
+ idMap[luceneId] = docnum;
}
}
}
@@ -231,10 +231,12 @@ namespace Lucene.Net.Search
}
private int switcher;
- /// <param name="directory">
- /// </param>
- /// <throws> IOException </throws>
- public CustomSearcher(TestCustomSearcherSort enclosingInstance, Directory directory, int switcher):base(directory)
+
+ /// <param name="directory">
+ /// </param>
+ /// <throws> IOException </throws>
+ public CustomSearcher(TestCustomSearcherSort enclosingInstance, Directory directory, int switcher)
+ : base(directory, true)
{
InitBlock(enclosingInstance);
this.switcher = switcher;
@@ -246,14 +248,6 @@ namespace Lucene.Net.Search
InitBlock(enclosingInstance);
this.switcher = switcher;
}
- /// <param name="path">
- /// </param>
- /// <throws> IOException </throws>
- public CustomSearcher(TestCustomSearcherSort enclosingInstance, System.String path, int switcher):base(path)
- {
- InitBlock(enclosingInstance);
- this.switcher = switcher;
- }
/* (non-Javadoc)
* @see Lucene.Net.Search.Searchable#search(Lucene.Net.Search.Query, Lucene.Net.Search.Filter, int, Lucene.Net.Search.Sort)
*/
Modified: incubator/lucene.net/trunk/test/core/Search/TestDateFilter.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestDateFilter.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestDateFilter.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestDateFilter.cs Tue Feb 28 22:43:08 2012
@@ -35,7 +35,7 @@ namespace Lucene.Net.Search
///
///
/// </summary>
- /// <version> $Revision: 791175 $
+ /// <version> $Revision: 821340 $
/// </version>
[TestFixture]
public class TestDateFilter:LuceneTestCase
@@ -58,8 +58,8 @@ namespace Lucene.Net.Search
writer.AddDocument(doc);
writer.Optimize();
writer.Close();
-
- IndexSearcher searcher = new IndexSearcher(indexStore);
+
+ IndexSearcher searcher = new IndexSearcher(indexStore, true);
// filter that should preserve matches
//DateFilter df1 = DateFilter.Before("datefield", now);
@@ -115,8 +115,8 @@ namespace Lucene.Net.Search
writer.AddDocument(doc);
writer.Optimize();
writer.Close();
-
- IndexSearcher searcher = new IndexSearcher(indexStore);
+
+ IndexSearcher searcher = new IndexSearcher(indexStore, true);
// filter that should preserve matches
//DateFilter df1 = DateFilter.After("datefield", now);
Modified: incubator/lucene.net/trunk/test/core/Search/TestDateSort.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestDateSort.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestDateSort.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestDateSort.cs Tue Feb 28 22:43:08 2012
@@ -72,13 +72,11 @@ namespace Lucene.Net.Search
[Test]
public virtual void TestReverseDateSort()
{
- IndexSearcher searcher = new IndexSearcher(directory);
+ IndexSearcher searcher = new IndexSearcher(directory, true);
- // Create a Sort object. reverse is set to true.
- // problem occurs only with SortField.AUTO:
- Sort sort = new Sort(new SortField(DATE_TIME_FIELD, SortField.AUTO, true));
+ Sort sort = new Sort(new SortField(DATE_TIME_FIELD, SortField.STRING, true));
- QueryParser queryParser = new QueryParser(TEXT_FIELD, new WhitespaceAnalyzer());
+ QueryParser queryParser = new QueryParser(Util.Version.LUCENE_CURRENT, TEXT_FIELD, new WhitespaceAnalyzer());
Query query = queryParser.Parse("Document");
// Execute the search and process the search results.
Modified: incubator/lucene.net/trunk/test/core/Search/TestDisjunctionMaxQuery.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestDisjunctionMaxQuery.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestDisjunctionMaxQuery.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestDisjunctionMaxQuery.cs Tue Feb 28 22:43:08 2012
@@ -136,8 +136,8 @@ namespace Lucene.Net.Search
}
writer.Close();
-
- r = IndexReader.Open(index);
+
+ r = IndexReader.Open(index, true);
s = new IndexSearcher(r);
s.SetSimilarity(sim);
}
Modified: incubator/lucene.net/trunk/test/core/Search/TestDocBoost.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestDocBoost.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestDocBoost.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestDocBoost.cs Tue Feb 28 22:43:08 2012
@@ -111,7 +111,7 @@ namespace Lucene.Net.Search
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/trunk/test/core/Search/TestDocIdSet.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestDocIdSet.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestDocIdSet.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestDocIdSet.cs Tue Feb 28 22:43:08 2012
@@ -16,7 +16,7 @@
*/
using System;
-
+using Lucene.Net.Support;
using NUnit.Framework;
using WhitespaceAnalyzer = Lucene.Net.Analysis.WhitespaceAnalyzer;
@@ -68,25 +68,11 @@ namespace Lucene.Net.Search
internal int docid = - 1;
- /** @deprecated use {@link #DocID()} instead. */
- public override int Doc()
- {
- return docid;
- }
-
public override int DocID()
{
return docid;
}
- /// <deprecated> use {@link #NextDoc()} instead.
- /// </deprecated>
- [Obsolete("use NextDoc() instead. ")]
- public override bool Next()
- {
- return NextDoc() != NO_MORE_DOCS;
- }
-
//@Override
public override int NextDoc()
{
@@ -94,14 +80,6 @@ namespace Lucene.Net.Search
return docid < maxdoc?docid:(docid = NO_MORE_DOCS);
}
- /// <deprecated> use {@link #Advance(int)} instead.
- /// </deprecated>
- [Obsolete("use Advance(int) instead. ")]
- public override bool SkipTo(int target)
- {
- return Advance(target) != NO_MORE_DOCS;
- }
-
//@Override
public override int Advance(int target)
{
@@ -127,7 +105,6 @@ namespace Lucene.Net.Search
}
- // @Override
public override DocIdSetIterator Iterator()
{
return new AnonymousClassDocIdSetIterator(maxdoc, this);
@@ -212,7 +189,7 @@ namespace Lucene.Net.Search
docs[c++] = ((System.Int32) intIter.Current);
}
int[] answer = new int[]{4, 6, 8};
- bool same = SupportClass.CollectionsHelper.Equals(answer, docs);
+ bool same = CollectionsHelper.Equals(answer, docs);
if (!same)
{
System.Console.Out.WriteLine("answer: " + _TestUtil.ArrayToString(answer));
Modified: incubator/lucene.net/trunk/test/core/Search/TestElevationComparator.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestElevationComparator.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestElevationComparator.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestElevationComparator.cs Tue Feb 28 22:43:08 2012
@@ -72,9 +72,9 @@ namespace Lucene.Net.Search
newq.Add(query, BooleanClause.Occur.SHOULD);
newq.Add(GetElevatedQuery(new System.String[]{"id", "a", "id", "x"}), BooleanClause.Occur.SHOULD);
- Sort sort = new Sort(new SortField[]{new SortField("id", new ElevationComparatorSource(priority), false), new SortField(null, SortField.SCORE, reversed)});
+ Sort sort = new Sort(new SortField("id", new ElevationComparatorSource(priority), false), new SortField(null, SortField.SCORE, reversed));
- TopDocsCollector topCollector = TopFieldCollector.create(sort, 50, false, true, true, true);
+ TopFieldCollector topCollector = TopFieldCollector.create(sort, 50, false, true, true, true);
searcher.Search(newq, null, topCollector);
TopDocs topDocs = topCollector.TopDocs(0, 10);
Modified: incubator/lucene.net/trunk/test/core/Search/TestExplanations.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestExplanations.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestExplanations.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestExplanations.cs Tue Feb 28 22:43:08 2012
@@ -56,7 +56,7 @@ namespace Lucene.Net.Search
public const System.String KEY = "KEY";
public const System.String FIELD = "field";
- public static readonly QueryParser qp = new QueryParser(FIELD, new WhitespaceAnalyzer());
+ public static readonly QueryParser qp = new QueryParser(Util.Version.LUCENE_CURRENT, FIELD, new WhitespaceAnalyzer());
[TearDown]
public override void TearDown()
@@ -81,7 +81,7 @@ namespace Lucene.Net.Search
writer.AddDocument(doc);
}
writer.Close();
- searcher = new IndexSearcher(directory);
+ searcher = new IndexSearcher(directory, true);
}
protected internal System.String[] docFields = new System.String[]{"w1 w2 w3 w4 w5", "w1 w3 w2 w3 zz", "w1 xx w2 yy w3", "w1 w3 xx w2 yy w3 zz"};
Modified: incubator/lucene.net/trunk/test/core/Search/TestFieldCache.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestFieldCache.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestFieldCache.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestFieldCache.cs Tue Feb 28 22:43:08 2012
@@ -60,7 +60,7 @@ namespace Lucene.Net.Search
writer.AddDocument(doc);
}
writer.Close();
- reader = IndexReader.Open(directory);
+ reader = IndexReader.Open(directory, true);
}
[Test]
Modified: incubator/lucene.net/trunk/test/core/Search/TestFieldCacheRangeFilter.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestFieldCacheRangeFilter.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestFieldCacheRangeFilter.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestFieldCacheRangeFilter.cs Tue Feb 28 22:43:08 2012
@@ -1,7 +1,7 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
+ * this work for Additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
@@ -51,10 +51,10 @@ namespace Lucene.Net.Search
[Test]
public virtual void TestRangeFilterId()
- {
-
- IndexReader reader = IndexReader.Open(signedIndex.index);
- IndexSearcher search = new IndexSearcher(reader);
+ {
+
+ IndexReader reader = IndexReader.Open(signedIndex.index, true);
+ IndexSearcher Search = new IndexSearcher(reader);
int medId = ((maxId - minId) / 2);
@@ -71,76 +71,76 @@ namespace Lucene.Net.Search
// test id, bounded on both ends
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, maxIP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, maxIP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, maxIP, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, maxIP, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but last");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, maxIP, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, maxIP, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but first");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, maxIP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, maxIP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 2, result.Length, "all but ends");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", medIP, maxIP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", medIP, maxIP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1 + maxId - medId, result.Length, "med and up");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, medIP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, medIP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1 + medId - minId, result.Length, "up to med");
// unbounded id
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", null, null, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", null, null, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "min and up");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", null, maxIP, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", null, maxIP, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "max and down");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not min, but up");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", null, maxIP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", null, maxIP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not max, but down");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", medIP, maxIP, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", medIP, maxIP, T, F), numDocs).ScoreDocs;
Assert.AreEqual(maxId - medId, result.Length, "med and up, not max");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, medIP, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, medIP, F, T), numDocs).ScoreDocs;
Assert.AreEqual(medId - minId, result.Length, "not min, up to med");
// very small sets
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, minIP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, minIP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "min,min,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", medIP, medIP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", medIP, medIP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "med,med,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", maxIP, maxIP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", maxIP, maxIP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "max,max,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, minIP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", minIP, minIP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "min,min,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", null, minIP, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", null, minIP, F, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "nul,min,F,T");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", maxIP, maxIP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", maxIP, maxIP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,max,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", maxIP, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", maxIP, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,nul,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("id", medIP, medIP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("id", medIP, medIP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "med,med,T,T");
}
[Test]
public virtual void TestFieldCacheRangeFilterRand()
- {
-
- IndexReader reader = IndexReader.Open(signedIndex.index);
- IndexSearcher search = new IndexSearcher(reader);
+ {
+
+ IndexReader reader = IndexReader.Open(signedIndex.index, true);
+ IndexSearcher Search = new IndexSearcher(reader);
System.String minRP = Pad(signedIndex.minR);
System.String maxRP = Pad(signedIndex.maxR);
@@ -154,47 +154,47 @@ namespace Lucene.Net.Search
// test extremes, bounded on both ends
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, maxRP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, maxRP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, maxRP, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, maxRP, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but biggest");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, maxRP, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, maxRP, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but smallest");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, maxRP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, maxRP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 2, result.Length, "all but extremes");
// unbounded
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "smallest and up");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", null, maxRP, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", null, maxRP, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "biggest and down");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not smallest, but up");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", null, maxRP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", null, maxRP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not biggest, but down");
// very small sets
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, minRP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, minRP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "min,min,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", maxRP, maxRP, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", maxRP, maxRP, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "max,max,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, minRP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", minRP, minRP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "min,min,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", null, minRP, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", null, minRP, F, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "nul,min,F,T");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", maxRP, maxRP, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", maxRP, maxRP, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,max,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", maxRP, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewStringRange("rand", maxRP, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,nul,T,T");
}
@@ -202,10 +202,10 @@ namespace Lucene.Net.Search
[Test]
public virtual void TestFieldCacheRangeFilterShorts()
- {
-
- IndexReader reader = IndexReader.Open(signedIndex.index);
- IndexSearcher search = new IndexSearcher(reader);
+ {
+
+ IndexReader reader = IndexReader.Open(signedIndex.index, true);
+ IndexSearcher Search = new IndexSearcher(reader);
int numDocs = reader.NumDocs();
int medId = ((maxId - minId) / 2);
@@ -220,86 +220,86 @@ namespace Lucene.Net.Search
// test id, bounded on both ends
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, maxIdO, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, maxIdO, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but last");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, maxIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, maxIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but first");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 2, result.Length, "all but ends");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", medIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", medIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1 + maxId - medId, result.Length, "med and up");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1 + medId - minId, result.Length, "up to med");
// unbounded id
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, null, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, null, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "min and up");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, maxIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, maxIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "max and down");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not min, but up");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not max, but down");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", medIdO, maxIdO, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", medIdO, maxIdO, T, F), numDocs).ScoreDocs;
Assert.AreEqual(maxId - medId, result.Length, "med and up, not max");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, medIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, medIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(medId - minId, result.Length, "not min, up to med");
// very small sets
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, minIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, minIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "min,min,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", medIdO, medIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", medIdO, medIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "med,med,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", maxIdO, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", maxIdO, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "max,max,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, minIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", minIdO, minIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "min,min,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, minIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, minIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "nul,min,F,T");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", maxIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", maxIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,max,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", maxIdO, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", maxIdO, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,nul,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", medIdO, medIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", medIdO, medIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "med,med,T,T");
// special cases
System.Int16 tempAux = (short) System.Int16.MaxValue;
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "overflow special case");
System.Int16 tempAux2 = (short) System.Int16.MinValue;
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "overflow special case");
- result = search.Search(q, FieldCacheRangeFilter.NewShortRange("id", maxIdO, minIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewShortRange("id", maxIdO, minIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "inverse range");
}
[Test]
public virtual void TestFieldCacheRangeFilterInts()
- {
-
- IndexReader reader = IndexReader.Open(signedIndex.index);
- IndexSearcher search = new IndexSearcher(reader);
+ {
+
+ IndexReader reader = IndexReader.Open(signedIndex.index, true);
+ IndexSearcher Search = new IndexSearcher(reader);
int numDocs = reader.NumDocs();
int medId = ((maxId - minId) / 2);
@@ -314,86 +314,86 @@ namespace Lucene.Net.Search
// test id, bounded on both ends
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, maxIdO, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, maxIdO, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but last");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, maxIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, maxIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but first");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 2, result.Length, "all but ends");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", medIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", medIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1 + maxId - medId, result.Length, "med and up");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1 + medId - minId, result.Length, "up to med");
// unbounded id
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, null, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, null, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "min and up");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, maxIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, maxIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "max and down");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not min, but up");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not max, but down");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", medIdO, maxIdO, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", medIdO, maxIdO, T, F), numDocs).ScoreDocs;
Assert.AreEqual(maxId - medId, result.Length, "med and up, not max");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, medIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, medIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(medId - minId, result.Length, "not min, up to med");
// very small sets
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, minIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, minIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "min,min,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", medIdO, medIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", medIdO, medIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "med,med,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", maxIdO, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", maxIdO, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "max,max,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, minIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", minIdO, minIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "min,min,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, minIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, minIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "nul,min,F,T");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", maxIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", maxIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,max,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", maxIdO, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", maxIdO, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,nul,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", medIdO, medIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", medIdO, medIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "med,med,T,T");
// special cases
System.Int32 tempAux = (System.Int32) System.Int32.MaxValue;
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "overflow special case");
System.Int32 tempAux2 = (System.Int32) System.Int32.MinValue;
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "overflow special case");
- result = search.Search(q, FieldCacheRangeFilter.NewIntRange("id", maxIdO, minIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewIntRange("id", maxIdO, minIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "inverse range");
}
[Test]
public virtual void TestFieldCacheRangeFilterLongs()
- {
-
- IndexReader reader = IndexReader.Open(signedIndex.index);
- IndexSearcher search = new IndexSearcher(reader);
+ {
+
+ IndexReader reader = IndexReader.Open(signedIndex.index, true);
+ IndexSearcher Search = new IndexSearcher(reader);
int numDocs = reader.NumDocs();
int medId = ((maxId - minId) / 2);
@@ -408,77 +408,77 @@ namespace Lucene.Net.Search
// test id, bounded on both ends
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, maxIdO, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, maxIdO, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but last");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, maxIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, maxIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "all but first");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 2, result.Length, "all but ends");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", medIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", medIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1 + maxId - medId, result.Length, "med and up");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1 + medId - minId, result.Length, "up to med");
// unbounded id
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, null, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, null, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "min and up");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, maxIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, maxIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "max and down");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not min, but up");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(numDocs - 1, result.Length, "not max, but down");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", medIdO, maxIdO, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", medIdO, maxIdO, T, F), numDocs).ScoreDocs;
Assert.AreEqual(maxId - medId, result.Length, "med and up, not max");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, medIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, medIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(medId - minId, result.Length, "not min, up to med");
// very small sets
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, minIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, minIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "min,min,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", medIdO, medIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", medIdO, medIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "med,med,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", maxIdO, maxIdO, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", maxIdO, maxIdO, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "max,max,F,F");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, minIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", minIdO, minIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "min,min,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, minIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, minIdO, F, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "nul,min,F,T");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", maxIdO, maxIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", maxIdO, maxIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,max,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", maxIdO, null, T, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", maxIdO, null, T, F), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "max,nul,T,T");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", medIdO, medIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", medIdO, medIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(1, result.Length, "med,med,T,T");
// special cases
System.Int64 tempAux = (long) System.Int64.MaxValue;
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "overflow special case");
System.Int64 tempAux2 = (long) System.Int64.MinValue;
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "overflow special case");
- result = search.Search(q, FieldCacheRangeFilter.NewLongRange("id", maxIdO, minIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewLongRange("id", maxIdO, minIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "inverse range");
}
@@ -486,10 +486,10 @@ namespace Lucene.Net.Search
[Test]
public virtual void TestFieldCacheRangeFilterFloats()
- {
-
- IndexReader reader = IndexReader.Open(signedIndex.index);
- IndexSearcher search = new IndexSearcher(reader);
+ {
+
+ IndexReader reader = IndexReader.Open(signedIndex.index, true);
+ IndexSearcher Search = new IndexSearcher(reader);
int numDocs = reader.NumDocs();
System.Single minIdO = (float) (minId + .5f);
@@ -498,30 +498,30 @@ namespace Lucene.Net.Search
ScoreDoc[] result;
Query q = new TermQuery(new Term("body", "body"));
- result = search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs / 2, result.Length, "find all");
int count = 0;
- result = search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", null, medIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", null, medIdO, F, T), numDocs).ScoreDocs;
count += result.Length;
- result = search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", medIdO, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", medIdO, null, F, F), numDocs).ScoreDocs;
count += result.Length;
Assert.AreEqual(numDocs, count, "sum of two concenatted ranges");
- result = search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", null, null, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", null, null, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
System.Single tempAux = (float) System.Single.PositiveInfinity;
- result = search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "infinity special case");
System.Single tempAux2 = (float) System.Single.NegativeInfinity;
- result = search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewFloatRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "infinity special case");
}
[Test]
public virtual void TestFieldCacheRangeFilterDoubles()
- {
-
- IndexReader reader = IndexReader.Open(signedIndex.index);
- IndexSearcher search = new IndexSearcher(reader);
+ {
+
+ IndexReader reader = IndexReader.Open(signedIndex.index, true);
+ IndexSearcher Search = new IndexSearcher(reader);
int numDocs = reader.NumDocs();
System.Double minIdO = (double) (minId + .5);
@@ -530,22 +530,69 @@ namespace Lucene.Net.Search
ScoreDoc[] result;
Query q = new TermQuery(new Term("body", "body"));
- result = search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", minIdO, medIdO, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs / 2, result.Length, "find all");
int count = 0;
- result = search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", null, medIdO, F, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", null, medIdO, F, T), numDocs).ScoreDocs;
count += result.Length;
- result = search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", medIdO, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", medIdO, null, F, F), numDocs).ScoreDocs;
count += result.Length;
Assert.AreEqual(numDocs, count, "sum of two concenatted ranges");
- result = search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", null, null, T, T), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", null, null, T, T), numDocs).ScoreDocs;
Assert.AreEqual(numDocs, result.Length, "find all");
System.Double tempAux = (double) System.Double.PositiveInfinity;
- result = search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", tempAux, null, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "infinity special case");
System.Double tempAux2 = (double) System.Double.NegativeInfinity;
- result = search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
+ result = Search.Search(q, FieldCacheRangeFilter.NewDoubleRange("id", null, tempAux2, F, F), numDocs).ScoreDocs;
Assert.AreEqual(0, result.Length, "infinity special case");
}
+
+ [Test]
+ // test using a sparse index (with deleted docs). The DocIdSet should be not cacheable, as it uses TermDocs if the range contains 0
+ public void TestSparseIndex()
+ {
+ RAMDirectory dir = new RAMDirectory();
+ IndexWriter writer = new IndexWriter(dir, new SimpleAnalyzer(), T, IndexWriter.MaxFieldLength.LIMITED);
+
+ for (int d = -20; d <= 20; d++) {
+ Document doc = new Document();
+ doc.Add(new Field("id",d.ToString(), Field.Store.NO, Field.Index.NOT_ANALYZED));
+ doc.Add(new Field("body","body", Field.Store.NO, Field.Index.NOT_ANALYZED));
+ writer.AddDocument(doc);
+ }
+
+ writer.Optimize();
+ writer.DeleteDocuments(new Term("id","0"));
+ writer.Close();
+
+ IndexReader reader = IndexReader.Open(dir);
+ IndexSearcher Search = new IndexSearcher(reader);
+ Assert.True(reader.HasDeletions());
+
+ ScoreDoc[] result;
+ Query q = new TermQuery(new Term("body","body"));
+
+ FieldCacheRangeFilter<sbyte?> fcrf;
+ result = Search.Search(q, fcrf = FieldCacheRangeFilter.NewByteRange("id", -20, 20, T, T), 100).ScoreDocs;
+ Assert.False(fcrf.GetDocIdSet(reader.GetSequentialSubReaders()[0]).IsCacheable(), "DocIdSet must be not cacheable");
+ Assert.AreEqual(40, result.Length, "find all");
+
+ result = Search.Search(q, fcrf = FieldCacheRangeFilter.NewByteRange("id", 0, 20, T, T), 100).ScoreDocs;
+ Assert.False(fcrf.GetDocIdSet(reader.GetSequentialSubReaders()[0]).IsCacheable(), "DocIdSet must be not cacheable");
+ Assert.AreEqual( 20, result.Length, "find all");
+
+ result = Search.Search(q, fcrf = FieldCacheRangeFilter.NewByteRange("id", -20, 0, T, T), 100).ScoreDocs;
+ Assert.False(fcrf.GetDocIdSet(reader.GetSequentialSubReaders()[0]).IsCacheable(), "DocIdSet must be not cacheable");
+ Assert.AreEqual( 20, result.Length, "find all");
+
+ result = Search.Search(q, fcrf = FieldCacheRangeFilter.NewByteRange("id", 10, 20, T, T), 100).ScoreDocs;
+ Assert.True(fcrf.GetDocIdSet(reader.GetSequentialSubReaders()[0]).IsCacheable(), "DocIdSet must be not cacheable");
+ Assert.AreEqual( 11, result.Length, "find all");
+
+ result = Search.Search(q, fcrf = FieldCacheRangeFilter.NewByteRange("id", -20, -10, T, T), 100).ScoreDocs;
+ Assert.True(fcrf.GetDocIdSet(reader.GetSequentialSubReaders()[0]).IsCacheable(), "DocIdSet must be not cacheable");
+ Assert.AreEqual( 11, result.Length, "find all");
+ }
}
}
\ No newline at end of file
Modified: incubator/lucene.net/trunk/test/core/Search/TestFieldCacheTermsFilter.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestFieldCacheTermsFilter.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestFieldCacheTermsFilter.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestFieldCacheTermsFilter.cs Tue Feb 28 22:43:08 2012
@@ -53,8 +53,8 @@ namespace Lucene.Net.Search
w.AddDocument(doc);
}
w.Close();
-
- IndexReader reader = IndexReader.Open(rd);
+
+ IndexReader reader = IndexReader.Open(rd, true);
IndexSearcher searcher = new IndexSearcher(reader);
int numDocs = reader.NumDocs();
ScoreDoc[] results;
Modified: incubator/lucene.net/trunk/test/core/Search/TestFilteredQuery.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/test/core/Search/TestFilteredQuery.cs?rev=1294875&r1=1294874&r2=1294875&view=diff
==============================================================================
--- incubator/lucene.net/trunk/test/core/Search/TestFilteredQuery.cs (original)
+++ incubator/lucene.net/trunk/test/core/Search/TestFilteredQuery.cs Tue Feb 28 22:43:08 2012
@@ -34,15 +34,8 @@ namespace Lucene.Net.Search
{
/// <summary> FilteredQuery JUnit tests.
- ///
/// <p/>Created: Apr 21, 2004 1:21:46 PM
- ///
- ///
/// </summary>
- /// <version> $Id: TestFilteredQuery.java 807821 2009-08-25 21:55:49Z mikemccand $
- /// </version>
- /// <since> 1.4
- /// </since>
[TestFixture]
public class TestFilteredQuery:LuceneTestCase
{
@@ -103,7 +96,7 @@ namespace Lucene.Net.Search
writer.Optimize();
writer.Close();
- searcher = new IndexSearcher(directory);
+ searcher = new IndexSearcher(directory, true);
query = new TermQuery(new Term("field", "three"));
filter = NewStaticFilterB();
}
@@ -131,7 +124,7 @@ namespace Lucene.Net.Search
Assert.AreEqual(1, hits[0].doc);
QueryUtils.Check(filteredquery, searcher);
- hits = searcher.Search(filteredquery, null, 1000, new Sort("sorter")).ScoreDocs;
+ hits = searcher.Search(filteredquery, null, 1000, new Sort(new SortField("sorter", SortField.STRING))).ScoreDocs;
Assert.AreEqual(1, hits.Length);
Assert.AreEqual(1, hits[0].doc);