lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Willnauer <simon.willna...@googlemail.com>
Subject Re: General Questions and some Problems
Date Mon, 25 Apr 2011 10:11:58 GMT
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_24@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-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

---------------------------------------------------------------------
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