[Test] public void ConsistencyAfterUpdates() { MockPluginEnvironment env = new MockPluginEnvironment(_storage); env = env; FullTextIndexer indexer = new FullTextIndexer(); //----------------------------------------------------------------- indexer.AddDocumentFragment(100, "token1 token2 token3"); indexer.AddDocumentFragment(200, "token1 token2 token3"); indexer.EndBatchUpdate(); Entry[] aentry_Result = indexer.ProcessQueryInternal("token1"); Assert.IsTrue(aentry_Result.Length == 2, "Failed to find all documents"); //----------------------------------------------------------------- indexer.AddDocumentFragment(300, "token1 token2 token3"); indexer.AddDocumentFragment(400, "token1 token4 token5"); indexer.EndBatchUpdate(); aentry_Result = indexer.ProcessQueryInternal("token1"); Assert.IsTrue(aentry_Result.Length == 4, "Failed to find all documents"); //----------------------------------------------------------------- indexer.AddDocumentFragment(500, "token1 token2 token3"); indexer.AddDocumentFragment(600, "token1 token4 token5"); indexer.EndBatchUpdate(); aentry_Result = indexer.ProcessQueryInternal("token1"); Assert.IsTrue(aentry_Result.Length == 6, "Failed to find all documents"); //----------------------------------------------------------------- indexer.DeleteDocument(100); aentry_Result = indexer.ProcessQueryInternal("token1"); Assert.IsTrue(aentry_Result.Length == 5, "Failed to find all documents"); indexer.DeleteDocument(600); aentry_Result = indexer.ProcessQueryInternal("token1"); Assert.IsTrue(aentry_Result.Length == 4, "Failed to find all documents"); //----------------------------------------------------------------- for (int i = 0; i < 200000; i++) { indexer.AddDocumentFragment(i + 1000, "Term" + i); if (i % 100000 == 0) { indexer.AddDocumentFragment(i + 1000, "Token1"); Console.Write("."); } } indexer.EndBatchUpdate(); aentry_Result = indexer.ProcessQueryInternal("token1"); Assert.IsTrue(aentry_Result.Length == 6, "Failed to find all documents"); //----------------------------------------------------------------- indexer.AddDocumentFragment(300, "token1 token2 token3"); indexer.AddDocumentFragment(400, "token1 token4 token5"); indexer.EndBatchUpdate(); aentry_Result = indexer.ProcessQueryInternal("token1"); Assert.IsTrue(aentry_Result.Length == 8, "Failed to find all documents"); indexer.DiscardTextIndex(); }
[Test] public void DeleteDocument() { IResource newRes1 = Core.ResourceStore.NewResource("TestType"); IResource newRes2 = Core.ResourceStore.NewResource("TestType"); indexer.AddDocumentFragment(newRes1.Id, "one two three fourplay"); indexer.AddDocumentFragment(newRes2.Id, "fourplay threeplay. "); indexer.EndBatchUpdate(); Entry[] result = indexer.ProcessQueryInternal("fourplay"); AssertIfTrue("Size of query result does not equal 2 (before removal)", result.Length == 2); indexer.DeleteDocument(newRes1.Id); result = indexer.ProcessQueryInternal("fourplay"); AssertIfTrue("Size of query result does not equal 1 (after removal)", result.Length == 1); }
internal void DeleteDocumentImmediate(int docID) { if (IsIndexPresent()) { _textIndexer.DeleteDocument(docID); } }