From: Seth R. <set...@gm...> - 2008-05-10 21:12:05
|
I'm looking at the source code for CLucene (0.9.20) and see that there is a function that seems to be very handy when one doesn't know exactly what type of documents one is dealing with (say if you want to 'explore' the index): /** Returns an Enumeration of all the fields in a document. */ DocumentFieldEnumeration* fields() const; When I attempt to access that method via the following perl code #file system store my $store = Lucene::Store::FSDirectory->getDirectory("/home/me/lucene", 0); my $reader = Lucene::Index::IndexReader->open($store); # get number of docs in index my $num_docs = $reader->numDocs(); print "Found $num_docs in the index\n"; # get the nth document for (my $count = 0; $count < $num_docs ; $count++) { my $document = $reader->document($count); my $fields = $document->fields; print Dumper($fields); } I get this error: Can't locate object method "fields" via package "Lucene::Document" Am I doing something wrong here, or is this method just not accessible via Lucene.pm? Thanks, Seth |
From: Seth R. <set...@gm...> - 2008-05-12 18:53:48
|
Thanks for the advice. I thought perhaps there was some design decision that either made that function inaccessible or uncessary. Most of what I need I can get via Document->toString() and some regexs - however, it would be more convenient and probably safer to implement the fields method from CLucene. Seth On Mon, May 12, 2008 at 12:33 PM, Thomas Busch <tho...@us...> wrote: > Hi Seth, > > I think this could be easily achieved by patching one of > the .xs files. > > Thomas. > > > > Quoting Seth Russell <set...@gm...>: > > > > > > > > > > I'm looking at the source code for CLucene (0.9.20) and see that there > > is a function that seems to be very handy when one doesn't know > > exactly what type of documents one is dealing with (say if you want to > > 'explore' the index): > > > > /** Returns an Enumeration of all the fields in a document. */ > > DocumentFieldEnumeration* fields() const; > > > > When I attempt to access that method via the following perl code > > > > #file system store > > my $store = Lucene::Store::FSDirectory->getDirectory("/home/me/lucene", > 0); > > > > my $reader = Lucene::Index::IndexReader->open($store); > > > > # get number of docs in index > > my $num_docs = $reader->numDocs(); > > print "Found $num_docs in the index\n"; > > # get the nth document > > for (my $count = 0; $count < $num_docs ; $count++) { > > my $document = $reader->document($count); > > my $fields = $document->fields; > > print Dumper($fields); > > } > > > > I get this error: > > > > Can't locate object method "fields" via package "Lucene::Document" > > > > Am I doing something wrong here, or is this method just not accessible > > via Lucene.pm? > > > > Thanks, > > > > Seth > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > > Don't miss this year's exciting event. There's still time to save $100. > > Use priority code J8TL2D2. > > > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > > _______________________________________________ > > Clucene-perl mailing list > > Clu...@li... > > https://lists.sourceforge.net/lists/listinfo/clucene-perl > > > > > > > > |