lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Oltar" <>
Subject Lucene in Action book. Problems with first example
Date Tue, 16 Dec 2008 10:41:56 GMT
I am starting to learn Lucene.
I am using Lucene in Action book for startup (It was recommended to me). I
tried to compile first example from that book, but my ide (I use eclipse,
shows there are some errors in my code). I am just the beginner here, and I
really need to compile at least few programs.... before I can solve problems
myself. So I decided to post here the whole code with my comments. Please
help me!!!

package org.main;




import java.util.Date;

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;

public class SimpleIndexer {


 * @param args


public static void main(String[] args) throws Exception{

if (args.length !=2){

throw new Exception("Usage: java" + SimpleIndexer.class.getName() + "<indexDir>


 File indexDir = new File(args[0]);

File dataDir = new File(args[1]);

 long start = new Date().getTime();

int numIndexed = index(indexDir, dataDir);

long end = new Date().getTime();

System.out.println("Indexing " + numIndexed +" took " + (end - start) +



public static int index(File indexDir, File dataDir) throws IOException {

 if (!dataDir.exists() || !dataDir.isDirectory()){

 throw new IOException(dataDir + " doesn't exist or not a directory");


 IndexWriter writer = new IndexWriter(indexDir, new StandardAnalyzer(), true);
// Not sure why eclipse crosses this


 indexDirectory(writer, dataDir);

 int numIndexed = writer.docCount(); // Not sure why eclipse crosses this



 return numIndexed;


 private static void indexDirectory(IndexWriter writer, File dir)

File[] files = dir.listFiles();

for (int i=0; i< files.length; i++){

File f = files[i];


indexDirectory(writer, f);

 } else if(f.getName().endsWith(".txt")){

indexFile(writer, f);




 private static void indexFile(IndexWriter writer, File f) throwsIOException{

if(f.isHidden() || !f.exists() || !f.canRead()){



System.out.println("Indexing " + f.getCanonicalPath());

 Document doc = new Document();

doc.add(Field.Text("contents", new FileReader(f))); // Eclipse says: The
method Text(String, FileReader) is undefined for the type Field

 doc.add(Field.Keyword("filename", f.getCanonicalPath())); // Eclipse says:The
method Keyword(String, String) is undefined for the type Field




Please explain me why these errors are shown, and how to fix them. Maybe,
the version of lucene used by author of the book, contained needed methods?
So may it be that the book is outdated and can't be used for learning. If
so, please recommend me something that can help me to start with lucene.

Thanks in advance,

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message