Exemple #1
0
        [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();
        }
Exemple #2
0
        [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);
        }
Exemple #3
0
 internal void DeleteDocumentImmediate(int docID)
 {
     if (IsIndexPresent())
     {
         _textIndexer.DeleteDocument(docID);
     }
 }