What does vector.size() return?  You don't appear to be doing anything
with the String term in "for ( String term : vector.getTerms() )" -
presumably you intend to.


--
Ian.

On Thu, May 13, 2010 at 1:16 PM, manjula wijewickrema
<manjul...@gmail.com> wrote:
> Dear Ian,
>
> Thanks a lot for your immediate reply. As you have mentioned I replaced the
> lines as follows.
>
>
> IndexReader ir=IndexReader.open(directory);
>
> TermFreqVector vector=ir.getTermFreqVector(0,"fieldname");
>
> Now the error has been vanished and thanks for it. But I can't still see the
> results although I have moved those lines after iwriter.close(). What's the
> reason for this?
>
> sample code after modifications:
> .........................
> ........................
>
> 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);
>
> iwriter.close();
>
> IndexReader ir=IndexReader.open(directory);
>
> TermFreqVector vector=ir.getTermFreqVector(0,"fieldname");
> *
>
> int* size = vector.size();
>
> *for* ( String term : vector.getTerms() )
>
> System.*out*.println( "size = " + size );
>
> IndexSearcher isearcher = *new* IndexSearcher(directory, *true*);
> ..........
> ..........
> I appreciate your kind coperation
> Manjula
> On Thu, May 13, 2010 at 3:45 PM, Ian Lea <ian....@gmail.com> wrote:
>
>> 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
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to