public void ExternalsTokenStream() { string text = "-r5000 ^/Internals/shared/ shared" + Environment.NewLine + "svn://moria/export mcl/dlls"; PathTokenStream ts = new PathTokenStream(text); Token t = new Token(); Assert.That(NextToken(ts, t), Is.EqualTo("-R5000")); Assert.That(NextToken(ts, t), Is.EqualTo("^")); Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("INTERNALS/")); //Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("SHARED/")); //Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("SHARED")); Assert.That(NextToken(ts, t), Is.EqualTo("SVN")); Assert.That(NextToken(ts, t), Is.EqualTo(":")); Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("MORIA/")); //Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("EXPORT")); Assert.That(NextToken(ts, t), Is.EqualTo("MCL/")); //Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("DLLS")); Assert.That(NextToken(ts, t), Is.Null); }
public void PathTokenStream_GapQuery() { var ts = new PathTokenStream("Fileio/**/fileio.*"); var t = new Token(); Assert.That(NextToken(ts, t), Is.EqualTo("FILEIO/")); Assert.That(NextToken(ts, t), Is.EqualTo("**/")); Assert.That(NextToken(ts, t), Is.EqualTo("FILEIO")); Assert.That(NextToken(ts, t), Is.EqualTo(".*")); Assert.That(NextToken(ts, t), Is.Null); }
public void PathTokenStream() { var ts = new PathTokenStream("/Internals/White Space/str#nge.net/file.des*n?r.ext"); var t = new Token(); Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("INTERNALS/")); //Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("WHITE")); Assert.That(NextToken(ts, t), Is.EqualTo("SPACE/")); //Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("STR#NGE")); //Assert.That(NextToken(ts, t), Is.EqualTo(".")); Assert.That(NextToken(ts, t), Is.EqualTo(".NET/")); //Assert.That(NextToken(ts, t), Is.EqualTo("/")); Assert.That(NextToken(ts, t), Is.EqualTo("FILE")); //Assert.That(NextToken(ts, t), Is.EqualTo(".")); Assert.That(NextToken(ts, t), Is.EqualTo(".DES*N?R")); //Assert.That(NextToken(ts, t), Is.EqualTo(".")); Assert.That(NextToken(ts, t), Is.EqualTo(".EXT")); Assert.That(NextToken(ts, t), Is.Null); }
static TestIndex() { Directory directory = new RAMDirectory(); IndexWriter writer = new IndexWriter(directory, null, true); writer.SetMaxFieldLength(MaxNumberOfTermsPerDocument); var pathTokenStream = new PathTokenStream(""); var contentTokenStream = new SimpleTokenStream(""); var externalsTokenStream = new PathTokenStream(""); Field field_id = new Field("id", "", Field.Store.YES, Field.Index.UN_TOKENIZED); Field field_rev_first = new Field(FieldName.RevisionFirst, "", Field.Store.NO, Field.Index.UN_TOKENIZED); Field field_rev_last = new Field(FieldName.RevisionLast, "", Field.Store.NO, Field.Index.UN_TOKENIZED); Document doc = new Document(); doc.Add(field_id); doc.Add(new Field(FieldName.Path, pathTokenStream)); doc.Add(new Field(FieldName.Content, contentTokenStream)); doc.Add(new Field(FieldName.Externals, externalsTokenStream)); doc.Add(field_rev_first); doc.Add(field_rev_last); for (int i = 0; i < Data.GetLength(0); ++i) { string id = Data[i, 1]; field_id.SetValue(id); pathTokenStream.SetText(id); int rev_first = Revision.Head; if (id.StartsWith("/revisions")) { contentTokenStream.SetText(""); externalsTokenStream.SetText(""); rev_first = int.Parse(Data[i, 2]); } else { contentTokenStream.SetText(Data[i, 2]); externalsTokenStream.SetText(Data[i, 3]); } field_rev_first.SetValue(RevisionFieldValue(rev_first)); field_rev_last.SetValue(HeadRevisionFieldValue()); writer.AddDocument(doc); if (id.StartsWith("/revisions") && Data[i, 3] != null) // update last revision { // Change the last revision // Warning: It is not possible to load a document from the index // We have to rebuild/reparse it from the scratch writer.DeleteDocuments(new Term("id", id)); pathTokenStream.SetText(id); contentTokenStream.SetText(""); externalsTokenStream.SetText(""); int rev_last = int.Parse(Data[i, 3]); field_rev_last.SetValue(RevisionFieldValue(rev_last)); id += "@" + rev_first; Data[i, 1] = id; field_id.SetValue(id); writer.AddDocument(doc); } } // delete non existent document test writer.DeleteDocuments(new Term("id", "bliflaiwj123dj33")); writer.Optimize(); writer.Close(); Searcher = new IndexSearcher(directory); Assert.AreEqual(Data.GetLength(0), Searcher.MaxDoc()); // smoke test for index creation }