private void TouchTaxo(DirectoryTaxonomyWriter taxoWriter, FacetLabel cp) { taxoWriter.AddCategory(cp); taxoWriter.SetCommitData(new Dictionary <string, string>() { { "just", "data" } }); taxoWriter.Commit(); }
public virtual void TestCommitUserData() { // Verifies taxonomy commit data Directory dir = NewDirectory(); var taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE_OR_APPEND, NO_OP_CACHE); taxoWriter.AddCategory(new FacetLabel("a")); taxoWriter.AddCategory(new FacetLabel("b")); IDictionary <string, string> userCommitData = new Dictionary <string, string>(); userCommitData["testing"] = "1 2 3"; taxoWriter.SetCommitData(userCommitData); taxoWriter.Dispose(); var r = DirectoryReader.Open(dir); Assert.AreEqual(3, r.NumDocs, "2 categories plus root should have been committed to the underlying directory"); var readUserCommitData = r.IndexCommit.UserData; Assert.True("1 2 3".Equals(readUserCommitData["testing"], StringComparison.Ordinal), "wrong value extracted from commit data"); Assert.NotNull(DirectoryTaxonomyWriter.INDEX_EPOCH + " not found in commitData", readUserCommitData[DirectoryTaxonomyWriter.INDEX_EPOCH]); r.Dispose(); // open DirTaxoWriter again and commit, INDEX_EPOCH should still exist // in the commit data, otherwise DirTaxoReader.refresh() might not detect // that the taxonomy index has been recreated. taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE_OR_APPEND, NO_OP_CACHE); taxoWriter.AddCategory(new FacetLabel("c")); // add a category so that commit will happen taxoWriter.SetCommitData(new Dictionary <string, string>() { { "just", "data" } }); taxoWriter.Commit(); // verify taxoWriter.getCommitData() Assert.NotNull(DirectoryTaxonomyWriter.INDEX_EPOCH + " not found in taoxWriter.commitData", taxoWriter.CommitData[DirectoryTaxonomyWriter.INDEX_EPOCH]); taxoWriter.Dispose(); r = DirectoryReader.Open(dir); readUserCommitData = r.IndexCommit.UserData; Assert.NotNull(DirectoryTaxonomyWriter.INDEX_EPOCH + " not found in commitData", readUserCommitData[DirectoryTaxonomyWriter.INDEX_EPOCH]); r.Dispose(); dir.Dispose(); }