Hi,

I am learning lucene, and have created indexes using LuceneWriter (which
worked fine), but when I try an query it with LuceneReader it dose not
work, need help on the same.  Following is the code for LuceneWriter.java
and LuceneReader.java:


public class LuceneWriter {
 public static void main(String[] arg) throws IOException
{
File docDir = new File(DataConfig.dataDir);
 Directory dir =  FSDirectory.open(docDir);
HashMap<String, Analyzer> documentFiledAnalysers = new HashMap<String,
Analyzer>();
 documentFiledAnalysers.put("id", new StandardAnalyzer(Version.LUCENE_43));
 documentFiledAnalysers.put("content", new ShingleAnalyzerWrapper(new
StandardAnalyzer(Version.LUCENE_43), 2, 2, "", false, true));
 PerFieldAnalyzerWrapper analyserWrapper = new PerFieldAnalyzerWrapper(new
StandardAnalyzer(Version.LUCENE_43), documentFiledAnalysers);
 IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_43,
analyserWrapper);
 iwc.setOpenMode(OpenMode.CREATE);
 IndexWriter writer =  new IndexWriter(dir, iwc);
 Document doc2 = new Document();
doc2.add(new StringField("id", "2", Field.Store.YES));
doc2.add(new StringField("content", "I am leagend",
Field.Store.<http://field.store.no/>
YES));
 Document doc3 = new Document();
doc3.add(new StringField("id", "3", Field.Store.YES));
doc3.add(new StringField("content", "Tom got a cat.",
Field.Store.<http://field.store.no/>
YES));
 writer.addDocument(doc2);
writer.addDocument(doc3);

 writer.close();
 System.out.println("------------ Added index -----------");
 }

}



public class LuceneReader {


/**

* @param args

*/

public static void main(String[] args) {

try {

IndexReader reader =
DirectoryReader.open(FSDirectory.open(new File(DataConfig.dataDir)));

IndexSearcher searcher =  new IndexSearcher(reader);

HashMap<String, Analyzer> documentFieldAnalysers = new HashMap<String,
Analyzer>();

documentFieldAnalysers.put("id", new StandardAnalyzer(Version.LUCENE_43));

documentFieldAnalysers.put("content", new ShingleAnalyzerWrapper(new
StandardAnalyzer(Version.LUCENE_43),
2, 2, "", false, true));

PerFieldAnalyzerWrapper analyserWrapper
= new PerFieldAnalyzerWrapper(new StandardAnalyzer(Version.LUCENE_43),
documentFieldAnalysers);

QueryParser qpHelper = new QueryParser(Version.LUCENE_43, "content",
analyserWrapper);

Query query = qpHelper.parse("amleagend");

TopDocs results = searcher.search(query, 1000);

System.out.println("Searching for: " + query);

ScoreDoc[] hits = results.scoreDocs;



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

{

  Document doc = searcher.doc(hits[i].doc);

  System.out.println(doc);

}





} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}




}


Thanks,

Depanker Sharma

Reply via email to