public virtual void SetUp() { //create a user index userindex = new RAMDirectory(); IndexWriter writer = new IndexWriter(userindex, new SimpleAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED); for (int i = 0; i < 1000; i++) { Document doc = new Document(); doc.Add(new Field("field1", English.IntToEnglish(i), Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field("field2", English.IntToEnglish(i + 1), Field.Store.YES, Field.Index.ANALYZED)); // + word thousand writer.AddDocument(doc); } writer.Close(); // create the spellChecker spellindex = new RAMDirectory(); searchers = ArrayList.Synchronized(new ArrayList()); spellChecker = new SpellCheckerMock(spellindex, this); }
public void TestBogusField() { using Directory compIdx = NewDirectory(); SpellChecker compareSP = new SpellCheckerMock(compIdx, new LevensteinDistance(), new SuggestWordFrequencyComparer()); try { using IndexReader r = DirectoryReader.Open(userindex); Addwords(r, compareSP, "field3"); string[] similar = compareSP.SuggestSimilar("fvie", 2, r, "bogusFieldBogusField", SuggestMode.SUGGEST_WHEN_NOT_IN_INDEX); assertEquals(0, similar.Length); } finally { if (!compareSP.IsDisposed) { compareSP.Dispose(); } } }
public override void SetUp() { base.SetUp(); //create a user index userindex = NewDirectory(); IndexWriter writer = new IndexWriter(userindex, new IndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(Random()))); for (int i = 0; i < 1000; i++) { Document doc = new Document(); doc.Add(NewTextField("field1", English.IntToEnglish(i), Field.Store.YES)); doc.Add(NewTextField("field2", English.IntToEnglish(i + 1), Field.Store.YES)); // + word thousand doc.Add(NewTextField("field3", "fvei" + (i % 2 == 0 ? " five" : ""), Field.Store.YES)); // + word thousand writer.AddDocument(doc); } { Document doc = new Document(); doc.Add(NewTextField("field1", "eight", Field.Store.YES)); // "eight" in // the index // twice writer.AddDocument(doc); } { Document doc = new Document(); doc .Add(NewTextField("field1", "twenty-one twenty-one", Field.Store.YES)); // "twenty-one" in the index thrice writer.AddDocument(doc); } { Document doc = new Document(); doc.Add(NewTextField("field1", "twenty", Field.Store.YES)); // "twenty" // in the // index // twice writer.AddDocument(doc); } writer.Dispose(); searchers = new ConcurrentBag<IndexSearcher>(); // create the spellChecker spellindex = NewDirectory(); spellChecker = new SpellCheckerMock(spellindex); }
public void TestComparator() { using (Directory compIdx = NewDirectory()) { SpellChecker compareSP = new SpellCheckerMock(compIdx, new LevensteinDistance(), new SuggestWordFrequencyComparator()); try { using (IndexReader r = DirectoryReader.Open(userindex)) { Addwords(r, compareSP, "field3"); string[] similar = compareSP.SuggestSimilar("fvie", 2, r, "field3", SuggestMode.SUGGEST_WHEN_NOT_IN_INDEX); assertTrue(similar.Length == 2); //five and fvei have the same score, but different frequencies. assertEquals("fvei", similar[0]); assertEquals("five", similar[1]); } } finally { if (!compareSP.IsDisposed) compareSP.Dispose(); } } }
public void TestBogusField() { using (Directory compIdx = NewDirectory()) { SpellChecker compareSP = new SpellCheckerMock(compIdx, new LevensteinDistance(), new SuggestWordFrequencyComparator()); try { using (IndexReader r = DirectoryReader.Open(userindex)) { Addwords(r, compareSP, "field3"); string[] similar = compareSP.SuggestSimilar("fvie", 2, r, "bogusFieldBogusField", SuggestMode.SUGGEST_WHEN_NOT_IN_INDEX); assertEquals(0, similar.Length); } } finally { if (!compareSP.IsDisposed) compareSP.Dispose(); } } }