I briefly read through and it seems that the classpath is wrong, it should be:
javac TextFileIndexer.java -classpath ../Lucene/lucene-core-3.1.0/ provided this is the directory including org/apache/lucene/*.class | **/*.class simon On Sun, Apr 24, 2011 at 9:17 PM, tales <nero...@web.de> wrote: > Hello everyone, > > my name is Lars. I'm new to Java and especially to Lucene. For your > understanding I tell you in short what I'm about to do: > > I'm a student from Germany and currently I'm working at our library as a > student worker. I'm study Bioinformatics/Biosystemengineering and because of > that the leader of our library asked me to help him out with some technical > things on our homepage. We currently only have a MySQL based search script > for our users and now want to add a fulltextsearch to higher the performance > of the searching results for our users. So my idea was it to use Lucene, > what I think is the best way. I don't want to use the Zend framework for > that. I need to program with Java in any way. I want to build a small > program working in the background with a frontend for the users. > > Now what I did until here: > > 1. I downloaded Lucene 3.1.0 core (I think it's actually the newest?) > 2. I searched for a small tutorial on the web to get into the material and > found the page http://www.lucenetutorial.com > 3. I copy-pasted the example code from the page to see if I'm able to run > the code exactly > > Here is my first problem: I'm not able to compile the code. The problem lies > in the imported packages. I tried to compile the code with the following > commandline: > > javac TextFileIndexer.java -classpath > ../Lucene/lucene-core-3.1.0/org/apache/lucene > > i tried multiple path to the lucene package but the result was ever the > same: > > > TextFileIndexer.java:3: package org.apache.lucene.analysis.standard does not > exist > import org.apache.lucene.analysis.standard.StandardAnalyzer; > ^ > TextFileIndexer.java:4: package org.apache.lucene.document does not exist > import org.apache.lucene.document.Document; > ^ > TextFileIndexer.java:5: package org.apache.lucene.document does not exist > import org.apache.lucene.document.Field; > ^ > TextFileIndexer.java:6: package org.apache.lucene.index does not exist > import org.apache.lucene.index.IndexWriter; > ^ > TextFileIndexer.java:17: cannot find symbol > symbol : class IndexWriter > location: class com.lucenetutorial.apps.TextFileIndexer > private IndexWriter writer; > ^ > TextFileIndexer.java:69: cannot find symbol > symbol : class IndexWriter > location: class com.lucenetutorial.apps.TextFileIndexer > writer = new IndexWriter(indexDir, new StandardAnalyzer(), > true, > IndexWriter.MaxFieldLength.LIMITED); > ^ > TextFileIndexer.java:69: cannot find symbol > symbol : class StandardAnalyzer > location: class com.lucenetutorial.apps.TextFileIndexer > writer = new IndexWriter(indexDir, new StandardAnalyzer(), > true, > IndexWriter.MaxFieldLength.LIMITED); > ^ > TextFileIndexer.java:69: package IndexWriter does not exist > writer = new IndexWriter(indexDir, new StandardAnalyzer(), > true, > IndexWriter.MaxFieldLength.LIMITED); > > ^ > TextFileIndexer.java:89: cannot find symbol > symbol : class Document > location: class com.lucenetutorial.apps.TextFileIndexer > Document doc = new Document(); > ^ > TextFileIndexer.java:89: cannot find symbol > symbol : class Document > location: class com.lucenetutorial.apps.TextFileIndexer > Document doc = new Document(); > ^ > TextFileIndexer.java:95: cannot find symbol > symbol : class Field > location: class com.lucenetutorial.apps.TextFileIndexer > doc.add(new Field("contents", fr)); > ^ > TextFileIndexer.java:100: cannot find symbol > symbol : class Field > location: class com.lucenetutorial.apps.TextFileIndexer > doc.add(new Field("path", fileName, > ^ > TextFileIndexer.java:101: package Field does not exist > > Field.Store.YES, > ^ > TextFileIndexer.java:102: package Field does not exist > > Field.Index.NOT_ANALYZED)); > ^ > 14 errors > > > So my questions: > > Can you please help me little bit and tell me why I'm not able to compile > the code? > And tell me if Lucene is the best way for that task oder should I use a > Lucene port like Solr? > What files do I need to give with when I wrote an application using Lucene? > > Thank you very much for your help. > > Best regards > > Lars > > P.S.: > > Here the code of the TextFileIndexer.java: > > package com.lucenetutorial.apps; > > 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 java.io.*; > import java.util.ArrayList; > > /** > * This terminal application creates an Apache Lucene index in a folder and > adds files into this index > * based on the input of the user. > */ > public class TextFileIndexer { > > private IndexWriter writer; > private ArrayList<File> queue = new ArrayList<File>(); > > public static void main(String[] args) throws IOException { > System.out.println("Enter the path where the index will be created: "); > > BufferedReader br = new BufferedReader( > new InputStreamReader(System.in)); > String s = br.readLine(); > > TextFileIndexer indexer = null; > try { > indexer = new TextFileIndexer(s); > } catch (Exception ex) { > System.out.println("Cannot create index..." + ex.getMessage()); > System.exit(-1); > } > > //=================================================== > //read input from user until he enters q for quit > //=================================================== > while (!s.equalsIgnoreCase("q")) { > try { > System.out.println("Enter the file or folder name to add into the > index (q=quit):"); > System.out.println("[Acceptable file types: .xml, .html, .html, > .txt]"); > s = br.readLine(); > if (s.equalsIgnoreCase("q")) { > break; > } > > //try to add file into the index > indexer.indexFileOrDirectory(s); > } catch (Exception e) { > System.out.println("Error indexing " + s + " : " + e.getMessage()); > } > } > > //=================================================== > //after adding, we always have to call the > //closeIndex, otherwise the index is not created > //=================================================== > indexer.closeIndex(); > } > > /** > * Constructor > * @param indexDir the name of the folder in which the index should be > created > * @throws java.io.IOException > */ > TextFileIndexer(String indexDir) throws IOException { > // the boolean true parameter means to create a new index everytime, > // potentially overwriting any existing files there. > writer = new IndexWriter(indexDir, new StandardAnalyzer(), true, > IndexWriter.MaxFieldLength.LIMITED); > } > > /** > * Indexes a file or directory > * @param fileName the name of a text file or a folder we wish to add to > the index > * @throws java.io.IOException > */ > public void indexFileOrDirectory(String fileName) throws IOException { > //=================================================== > //gets the list of files in a folder (if user has submitted > //the name of a folder) or gets a single file name (is user > //has submitted only the file name) > //=================================================== > listFiles(new File(fileName)); > > int originalNumDocs = writer.numDocs(); > for (File f : queue) { > FileReader fr = null; > try { > Document doc = new Document(); > > //=================================================== > // add contents of file > //=================================================== > fr = new FileReader(f); > doc.add(new Field("contents", fr)); > > //=================================================== > //adding second field which contains the path of the file > //=================================================== > doc.add(new Field("path", fileName, > Field.Store.YES, > Field.Index.NOT_ANALYZED)); > > writer.addDocument(doc); > System.out.println("Added: " + f); > } catch (Exception e) { > System.out.println("Could not add: " + f); > } finally { > fr.close(); > } > } > > int newNumDocs = writer.numDocs(); > System.out.println(""); > System.out.println("************************"); > System.out.println((newNumDocs - originalNumDocs) + " documents > added."); > System.out.println("************************"); > > queue.clear(); > } > > private void listFiles(File file) { > if (!file.exists()) { > System.out.println(file + " does not exist."); > } > if (file.isDirectory()) { > for (File f : file.listFiles()) { > listFiles(f); > } > } else { > String filename = file.getName().toLowerCase(); > //=================================================== > // Only index text files > //=================================================== > if (filename.endsWith(".htm") || filename.endsWith(".html") || > filename.endsWith(".xml") || filename.endsWith(".txt")) { > queue.add(file); > } else { > System.out.println("Skipped " + filename); > } > } > } > > /** > * Close the index. > * @throws java.io.IOException > */ > public void closeIndex() throws IOException { > writer.optimize(); > writer.close(); > } > } > > -- > View this message in context: > http://lucene.472066.n3.nabble.com/General-Questions-and-some-Problems-tp2858378p2858378.html > Sent from the Lucene - Java Users mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > 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