I'd really recommend the Lucene In Action book. True, it's based on the 1.4 codebase, but the query syntax isn't changed.
Barring that, take a closer look at the Lucene website, the "documentation" link on the left and you'll find this page...... http://lucene.apache.org/java/docs/queryparsersyntax.html If you take time to poke around the website, you'll often find answers MUCH more quickly than you will waiting around for someone to have the time to answer e-mails, you can start here: http://lucene.apache.org/java/docs/ And there's a wealth of information available in the searchable mail archive, with many topics covered in much detail. See: http://wiki.apache.org/lucene-java/MailingListArchives There's also a Wiki you can access from the Lucene home page. Best Erick On Jan 2, 2008 2:07 PM, Jesiel Trevisan <[EMAIL PROTECTED]> wrote: > Nice! > Now, I got the Lucene's index files and my search found the files with the > keywords. > > But in this example, I can get only the search result with any keywords > entered. > > Then, someone knows how I can do the search with All Keyword ? > > For example, I have the keyword "house red" ... I would like to find the > current page where there is this keyword with All Words. > The pages where has ony "house" or only "red" as keywork, its will be > ignored, then, I'll have as my result all page with all words. > > Someone knows how do I have to create this filter ? > > Tks. > > On Jan 2, 2008 1:38 PM, Erick Erickson <[EMAIL PROTECTED]> wrote: > > > Yes, see the Lucene home page (sorry, I forget the exact link) for > > the changes for the various upgrades. Especially to 1.9 and then to 2.0. > > > > Erick > > > > On Jan 2, 2008 9:31 AM, Jesiel Trevisan <[EMAIL PROTECTED]> > wrote: > > > > > Thanks. > > > > > > I'm seeing many chances in this Lucene version 1.3 to 2.2.0 > > > > > > For example, does exists Field.Text() ... .KeyWork()... etc > > > > > > On Jan 2, 2008 10:39 AM, anjana m <[EMAIL PROTECTED]> wrote: > > > > > > > Hope this info will help.. > > > > i have just finished the task... > > > > run the indexer > > > > then run the seracher.. > > > > check the mail completly > > > > these are the steps that i ahve followed.. > > > > t search directories.. > > > > > > > > > > > > > > > > > > > > * Indexer.java* > > > > > > > > > > > > > > > > import org.apache.lucene.index.IndexWriter; > > > > > > > > import org.apache.lucene.analysis.standard.StandardAnalyzer; > > > > > > > > import org.apache.lucene.document.Document; > > > > > > > > import org.apache.lucene.document.Field; > > > > > > > > import java.io.File; > > > > > > > > import java.io.IOException; > > > > > > > > import java.io.FileReader; > > > > > > > > > > > > > > > > public class Indexer { > > > > > > > > public static void index(File indexDir, File dataDir) throws > > > > IOException > > > > { > > > > > > > > if (!dataDir.exists() || !dataDir.isDirectory()) { > > > > > > > > throw new IOException(dataDir + " does not exist or is > not > > a > > > > directory"); > > > > > > > > } > > > > > > > > IndexWriter writer = new IndexWriter(indexDir, new > > > > StandardAnalyzer(), true); > > > > > > > > indexDirectory(writer, dataDir); > > > > > > > > writer.close(); > > > > > > > > } > > > > > > > > > > > > > > > > private static void indexDirectory(IndexWriter writer, File dir) > > > throws > > > > IOException { > > > > > > > > File[] files = dir.listFiles(); > > > > > > > > System.out.println("TOTAL NUMBER OF FILES :"+files.length); > > > > > > > > for (int i=0; i < files.length; i++) > > > > > > > > { > > > > > > > > > > > > > > > > File f = files[i]; > > > > > > > > if (f.isDirectory()) { > > > > > > > > indexDirectory(writer, f); // recurse > > > > > > > > } else if (f.getName().endsWith(".txt")) { > > > > > > > > indexFile(writer, f); > > > > > > > > } > > > > > > > > } > > > > > > > > } > > > > > > > > > > > > > > > > private static void indexFile(IndexWriter writer, File f) throws > > > > IOException { > > > > > > > > > > > > > > > > System.out.println("Indexing " + f.getName()); /*Print the > > > Indexed > > > > File Names*/ > > > > > > > > Document doc = new Document(); > > > > > > > > doc.add(Field.Text("contents", new FileReader(f))); > > > > > > > > doc.add(Field.Keyword("filename", f.getCanonicalPath())); > > > > > > > > writer.addDocument(doc); > > > > > > > > } > > > > > > > > public static void main(String[] args) throws Exception { > > > > > > > > > > > > > > > > /*Create 2 new directory called TESTDir for Indexing and DataDir > > > which > > > > will conatain a text file which willbe indexed.*/ > > > > > > > > File indexDir=new File("TESTDIR");/*directory where we store > the > > > > Lucene index*/ > > > > > > > > File dataDir = new File("DataDir");/*directory that contains > > the > > > > files in txt we want to index*/ > > > > > > > > index(indexDir, dataDir); > > > > > > > > } > > > > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > *Searcher.java* > > > > > > > > import org.apache.lucene.document.Document; > > > > > > > > import org.apache.lucene.search.IndexSearcher; > > > > > > > > import org.apache.lucene.search.Query; > > > > > > > > import org.apache.lucene.search.Hits; > > > > > > > > import org.apache.lucene.store.FSDirectory; > > > > > > > > import org.apache.lucene.store.Directory; > > > > > > > > import org.apache.lucene.queryParser.QueryParser; > > > > > > > > import org.apache.lucene.analysis.standard.StandardAnalyzer; > > > > > > > > import java.io.File; > > > > > > > > public class Searcher { > > > > > > > > public static void main(String[] args) throws Exception > > > > > > > > { > > > > > > > > File indexDir = new File("TESTDIR"); > > > > > > > > String q ="jayanth"; > > > > > > > > if (!indexDir.exists() || !indexDir.isDirectory()) > > > > > > > > { > > > > > > > > throw new Exception(indexDir + " is does not exist or is > > not > > > a > > > > directory."); > > > > > > > > } > > > > > > > > > > > > > > > > search(indexDir, q); > > > > > > > > } > > > > > > > > public static void search(File indexDir, String q) throws > > Exception{ > > > > > > > > Directory fsDir = FSDirectory.getDirectory(indexDir, false); > > > > > > > > IndexSearcher is = new IndexSearcher(fsDir); > > > > > > > > Query query = QueryParser.parse(q, "contents", new > > > StandardAnalyzer()); > > > > > > > > Hits hits = is.search(query); > > > > > > > > System.out.println("Found " + hits.length() + " document(s) that > > > > matched > > > > query '" + q + "':"); > > > > > > > > for (int i = 0; i < hits.length(); i++) { > > > > > > > > Document doc = hits.doc(i); > > > > > > > > System.out.println(doc.get("filename")); > > > > > > > > } > > > > > > > > } > > > > > > > > } > > > > --------------------------------------- > > > > > > > > *Prerequistes of Lucene 1.3 to perform search.* > > > > > > > > > > > > > > > > 1. Lucene 1.3.jar > > > > 2. Index Directory to Hold the Indexes. > > > > 3. Data Directory that holds the files to be indexed > > > > 4. Mandatory Indexing of Document or Files > > > > 5. Only Indexed Data is Searchable > > > > > > > > > > > > > > > > Lucene 1.3. jar > > > > > > > > Lucene1.3. jar is an API that contains all the classes and methods > > > packed > > > > together to perform searching. > > > > > > > > The jar file can be downloaded from the following site: > > > > > > > > http://archive.apache.org/dist/jakarta/lucene/binaries/ > > > > > > > > The jar file that I have used for the sample program to demonstarte > > > Lucene > > > > search is Lucene 1.3 final.jar. > > > > > > > > The jar file should be available in the application jar library. > > > > > > > > The sample program will not work if we change the location of jar > > > > file.Thesample program will not perform search if there are > > > > conflicting jar versions > > > > or Duplicate jar versions. > > > > > > > > The following steps can be followed to add a Lucene 1.3. jar to > > NetBeans > > > > IDE: > > > > > > > > 1. Right Click on your Project->Properties > > > > 2. Project->Properties->Add jar folder > > > > 3. Browse for Lucene 1.3 jar > > > > 4. Click OK > > > > > > > > The Lucene 1.3 final.jar will be added to your sample application. > > > > > > > > To cross check just click on the libraries on the project explorer > > > window > > > > and confirm that Lucene1.3 final.jar is visible in the folder > > structure. > > > > > > > > > > > > > > > > Index Directory to Hold the Indexes > > > > > > > > This direcory will hold the Indexes of the data that is > supplied.Ihave > > > > manually created this directory .The directory should be available > to > > > the > > > > sample application folder. > > > > > > > > I have used NetBeans for my sample program and I have created a > > > directory > > > > in > > > > the following path: C:\Documents and Settings\MyWorkSpace\TryLucene > > > > > > > > TryLucne is the name of the sample project which contains > > > > Lucene1.3final.jar > > > > . > > > > > > > > Create a new folder and name the folder as "IndexDir". > > > > > > > > > > > > > > > > Data Directory that holds the files to be indexed > > > > > > > > This Directory will hold the the Data files.The sample program will > > > search > > > > .txt files. > > > > > > > > Create a new folder manually in the following path and name the > folder > > > as > > > > "DataDir" > > > > > > > > C:\Documents and Settings\MyWorkSpace\TryLucene > > > > > > > > Create some sample .txt files in the "DataDir" folder. > > > > > > > > > > > > > > > > Indexing > > > > > > > > The sample program Indexer.java performs Indexing of the .txt files. > > > > > > > > Build the application in NetBeansIDE > > > > > > > > Compile the Indexer.java in NetBeans > > > > > > > > Run the Indexer.java in NetBeans. > > > > > > > > The output of Indexer.java displays information about > > > > > > > > Total Number of files in the DataDir > > > > > > > > Names of the Indexed files in DataDir. > > > > > > > > Indexer.java program will Index all the .txt files in the DataDir > > > folder. > > > > > > > > > > > > > > > > Mehods in Indexer.java > > > > > > > > - index(File indexDir, File dataDir) > > > > > > > > Check if dataDir is directory throw reate a new IndexWriter > > > > > > > > Indexed writer construstor is used which the following aruguments () > > > > > > > > - indexDirectory (IndexWriter writer, File dir)----recursively > call > > to > > > > index all the files in the directory. > > > > - indexFile (IndexWriter writer, File f) --- get the document > > object, > > > > intialise the file reader. > > > > > > > > > > > > > > > > Searching > > > > > > > > > > > > > > > > Specify the directory that contains the index here its is "IndexDir" > > > > > > > > Specify the stirng that needs to be searched. > > > > > > > > Call->search (indexDir, q); where q is a string > > > > > > > > search (indexDir, q) > > > > > > > > > > > > > > > > > > > > > > http://wiki.dbsight.com/index.php?title=Create_Lucene_Database_Search_in_3_minutes > > > > > > > > http://www.dbsight.net/?q=node/47 > > > > > > > > http://www.roseindia.net/software-tutorials/detail/6533 > > > > > > > > http://static.compassframework.org/docs/latest/jdbcdirectory.html > > > > > > > > > > > > > > > > > > > > > > http://blog.scalingweb.com/2007/11/03/full-text-search-for-database-using-lucene-search-engine/ > > > > > > > > > > > > > > > > > > http://uborik.org/files/portfolio/info340_history_places_project_full.pdf > > > > > > > > > > > > > > --------------------------------------------------------------------------------------------------------------------- > > > > > > > > On Jan 2, 2008 5:37 PM, Jesiel Trevisan < [EMAIL PROTECTED]> > > > wrote: > > > > > > > > > Hi everyone, > > > > > > > > > > I'm trying to use the Lucene 2.2.0 in my webpage, I would like to > > > create > > > > a > > > > > simple websearch field/function in my site. > > > > > > > > > > I'm intalled the example of Lucene, but, there is only a Search > > > > funcional > > > > > implemented as example, not the indexing files. > > > > > > > > > > I would like to know how I can create a filter to create the > lucene > > > > index > > > > > files > > > > > > > > > > I need to indexing, for example, a directory of my website > > > > > > > > > > I created a example to try to Index a directory wirh a simple TXT > > file > > > > > insite it : > > > > > > > > > > ... > > > > > String indexDir = > > > > > "c:\\eclipse\\workspace\\JavaSource\\br\\com\\testeLucene" (* > > there > > > > is > > > > > a > > > > > test.txt file with some words insite it )* > > > > > > > > > > String dataDir = > > > > > > "c:\\eclipse\\workspace\\JavaSource\\br\\com\\lucene\\indexedFiles" > > > > > ... > > > > > > > > > > public static int index(File indexDir, File dataDir) throws > > > > IOException > > > > > { > > > > > > > > > > if (!dataDir.exists() || !dataDir.isDirectory()) { > > > > > throw new IOException(dataDir + "It is NOT a > Directory"); > > > > > } > > > > > > > > > > IndexWriter writer = new IndexWriter(indexDir, new > > > > > StandardAnalyzer(), true); > > > > > writer.setUseCompoundFile (false); > > > > > > > > > > indexDirectory(writer, dataDir); > > > > > > > > > > int numIndexed = writer.docCount(); > > > > > writer.optimize(); > > > > > writer.close(); > > > > > > > > > > return numIndexed; > > > > > } > > > > > > > > > > All right, the Lunece indexs files were created, but, following > the > > > > Lucene > > > > > > > > > > Search example, I could find the words that were inside the > > > test.txtfile > > > > > > > > > > Is it work ? is it right ? > > > > > > > > > > If someone can help me to starting the Lucene 2.2.0 I will really > > > > > appreciate > > > > > it. > > > > > > > > > > Tks so much. > > > > > > > > > > -- > > > > > _______________________________________________________ > > > > > Jesiel A.S. Trevisan > > > > > Email: [EMAIL PROTECTED] > > > > > MSN: [EMAIL PROTECTED] > > > > > Skype & AIM: jesieltrevisan > > > > > YahooMessager: jesiel.trevisan > > > > > ICQ:: 46527510 > > > > > _______________________________________________________ > > > > > CONFIDENTIALITY NOTICE: This e-mail message, including any > > > attachments, > > > > is > > > > > > > > > > for the sole use of the intended recipient(s) and may contain > > > > confidential > > > > > and privileged information or otherwise be protected by law. Any > > > > > unauthorized review, use, disclosure or distribution is > prohibited. > > If > > > > you > > > > > > > > > > are not the intended recipient, please contact the sender by reply > > > > e-mail > > > > > and destroy all copies of the original message. > > > > > > > > > > > > > > > > > > > > > -- > > > _______________________________________________________ > > > Jesiel A.S. Trevisan > > > Email: [EMAIL PROTECTED] > > > MSN: [EMAIL PROTECTED] > > > Skype & AIM: jesieltrevisan > > > YahooMessager: jesiel.trevisan > > > ICQ:: 46527510 > > > _______________________________________________________ > > > CONFIDENTIALITY NOTICE: This e-mail message, including any > attachments, > > is > > > for the sole use of the intended recipient(s) and may contain > > confidential > > > and privileged information or otherwise be protected by law. Any > > > unauthorized review, use, disclosure or distribution is prohibited. If > > you > > > are not the intended recipient, please contact the sender by reply > > e-mail > > > and destroy all copies of the original message. > > > > > > > > > -- > _______________________________________________________ > Jesiel A.S. Trevisan > Email: [EMAIL PROTECTED] > MSN: [EMAIL PROTECTED] > Skype & AIM: jesieltrevisan > YahooMessager: jesiel.trevisan > ICQ:: 46527510 > _______________________________________________________ > CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is > for the sole use of the intended recipient(s) and may contain confidential > and privileged information or otherwise be protected by law. Any > unauthorized review, use, disclosure or distribution is prohibited. If you > are not the intended recipient, please contact the sender by reply e-mail > and destroy all copies of the original message. >