You need to replace this: TermFreqVector vector = IndexReader.getTermFreqVector(0, "fieldname" );
with IndexReader ir = whatever(...); TermFreqVector vector = ir.getTermFreqVector(0, "fieldname" ); And you'll need to move it to after the writer.close() call if you want it to see the doc you've just added. -- Ian. On Thu, May 13, 2010 at 11:07 AM, manjula wijewickrema <manjul...@gmail.com> wrote: > Dear All, > > I am trying to get the term frequencies (through TermFreqVector) of a > document (using Lucene 2.9.1). In order to do that I have used the following > code. But there is a compile time error in the code and I can't figure it > out. Could somebody can guide me what's wrong with it. > Compile time error I got: > Cannot make a static reference to the non-static method > getTermFreqVector(int, String) from the type IndexReader. > > Code: > > *import* org.apache.lucene.analysis.standard.StandardAnalyzer; > > *import* org.apache.lucene.document.Document; > * > > import* org.apache.lucene.document.Field; > * > > import* org.apache.lucene.index.IndexWriter; > * > > import* org.apache.lucene.queryParser.ParseException; > * > > import* org.apache.lucene.queryParser.QueryParser; > * > > import* org.apache.lucene.search.*; > * > > import* org.apache.lucene.store.Directory; > * > > import* org.apache.lucene.store.RAMDirectory; > * > > import* org.apache.lucene.util.Version; > > * > > import* org.apache.lucene.index.IndexReader; > * > > import* org.apache.lucene.index.TermEnum; > * > > import* org.apache.lucene.index.Term; > * > > import* org.apache.lucene.index.TermFreqVector; > > * > > import* java.io.IOException; > * > > public* *class* DemoTest { > > *public* *static* *void* main(String[] args) { > > StandardAnalyzer analyzer = *new* StandardAnalyzer(Version.*LUCENE_CURRENT* > ); > > *try* { > > Directory directory = *new* RAMDirectory(); > > IndexWriter iwriter = *new* IndexWriter(directory, analyzer, > *true*,*new*IndexWriter.MaxFieldLength(25000)); > > Document doc = *new* Document(); > > String text = "This is the text to be indexed."; > > doc.add(*new* Field("fieldname", text, Field.Store.*YES*,Field.Index.* > ANALYZED*,Field.TermVector.*WITH_POSITIONS_OFFSETS*)); > > iwriter.addDocument(doc); > > TermFreqVector vector = IndexReader.getTermFreqVector(0, "fieldname" ); > * > > int* size = vector.size(); > > *for* ( String term : vector.getTerms() ) > > System.*out*.println( "size = " + size ); > > iwriter.close(); > > IndexSearcher isearcher = *new* IndexSearcher(directory, *true*); > > QueryParser parser = *new* QueryParser(Version.*LUCENE_CURRENT*, "fieldname", > analyzer); > > Query query = parser.parse("text"); > > ScoreDoc[] hits = isearcher.search(query, *null*, 1000).scoreDocs; > > System.*out*.println("hits.length(1) = " + hits.length); > > // Iterate through the results: > > *for* (*int* i = 0; i < hits.length; i++) { > > Document hitDoc = isearcher.doc(hits.doc); > > System.*out*.println("hitDoc.get(\"fieldname\") (This is the text to be > indexed) = " + > > hitDoc.get("fieldname")); > > } > > isearcher.close(); > > directory.close(); > > } *catch* (Exception ex) { > > ex.printStackTrace(); > > } > > } > > } > > > > Thanks in advance > > Manjula > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org