lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Hatcher <e...@ehatchersolutions.com>
Subject Re: Lucene in Action book. Problems with first example
Date Tue, 16 Dec 2008 10:49:42 GMT
The first edition of Lucene in Action was written for Lucene 1.4.   
Lots has changed since then in the API, but the fundamentals are still  
sound.  The code can be easily updated to the newer API following the  
details I posted here:

    <http://markmail.org/message/4jupw4wnjn3gv7wh>

Do note that Lucene in Action 2nd edition is in progress and available  
through Manning's early access program here: <http://manning.com/hatcher3/ 
 >, and updated code is available there (it is coded to Lucene's  
2.9/3.0 API).

	Erik

On Dec 16, 2008, at 5:41 AM, Oleg Oltar wrote:

> Hi!
> 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.io.File;
>
> import java.io.FileReader;
>
> import java.io.IOException;
>
> 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>
> <dataDir>");
>
> }
>
>
> 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) +
> "milliseconds");
>
> }
>
>
> @SuppressWarnings("deprecation")
>
> 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
>
> writer.setUseCompoundFile(false);
>
>
>
> indexDirectory(writer, dataDir);
>
> int numIndexed = writer.docCount(); // Not sure why eclipse crosses  
> this
>
> writer.optimize();
>
> writer.close();
>
>
>
>
>
> return numIndexed;
>
> }
>
>
> private static void indexDirectory(IndexWriter writer, File dir)
> throwsIOException{
>
> File[] files = dir.listFiles();
>
> for (int i=0; i< files.length; i++){
>
> File f = files[i];
>
> if(f.isDirectory()){
>
> 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()){
>
> return;
>
> }
>
> 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
>
> writer.addDocument(doc);
>
> }
>
>
>
>
>
> }
>
> 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,
> Oleg


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


Mime
View raw message