public SingleDocumentIndex(Document document, IAnalyzer analyzer, TermStorage termStorage, DocumentStorage documentStorage) { TermStorage = termStorage; DocumentStorage = documentStorage; AddDocument(document, analyzer); }
public void TestIndex() { string utf8Test = @" いろはにほへど ちりぬるを わがよたれぞ つねならむ うゐのおくやま けふこえて あさきゆめみじ ゑひもせず (4) "; var guid = Guid.NewGuid(); using (var tixS = new MemoryStream()) using (var tdtS = new MemoryStream()) using (var dixS = new MemoryStream()) using (var ddtS = new MemoryStream()) { using (var writer = new IndexWriter(tixS, tdtS, dixS, ddtS)) { var document = new bsharptree.example.simpleindex.Document(guid, new MemoryStream(Encoding.UTF8.GetBytes(utf8Test))); writer.AddDocument(document, new DefaultAnalyzer()); writer.TermStorage.Index.Commit(); } //tixS.Flush(); //tdtS.Flush(); //dixS.Flush(); //ddtS.Flush(); // reset tixS.Seek(0, SeekOrigin.Begin); tdtS.Seek(0, SeekOrigin.Begin); dixS.Seek(0, SeekOrigin.Begin); ddtS.Seek(0, SeekOrigin.Begin); using (var termStorage = new TermStorage(tixS, tdtS)) { var analyzer = new DefaultAnalyzer(); var stream = new MemoryStream(Encoding.UTF8.GetBytes(utf8Test)); foreach (var tp in analyzer.GetTermPositions(stream)) { var positions = termStorage.Get(tp.Term); var found = false; foreach (var pos in positions.Value) { Assert.IsTrue(pos.Document.Equals(guid)); if (pos.Span.Start == tp.Span.Start && pos.Span.End == tp.Span.End) found = true; } Assert.IsTrue(found); } } //var foo = new IndexQueryProvider(); //var docStorage = new DocumentStorage(dixS, ddtS); //var results = from term in foo.Terms // from location in term.Value // where term.Key == "foo" || term.Key == "bar" // select location; //foreach (var result in results.Distinct()) //{ // Console.Out.WriteLine(result.Document); // var document = docStorage.Get(result.Document); // var context = docStorage.GetContext(result); // Console.Out.WriteLine(context); // Console.Out.WriteLine(); //} } }
public IndexWriter(TermStorage termStorage, DocumentStorage documentStorage) : this() { TermStorage = termStorage; DocumentStorage = documentStorage; }