初学lucence,检索不到英文,在网上找了些资料,很多都是找不到中文,找的到英文,我这正好反了。
下面是代码,求指教:public void index() throws Exception{
//1.创建Directory(确定索引建立在内存中还是硬盘中)
//Directory directory = new RAMDirectory(); 创建到内存中
Directory directory = FSDirectory.open(new File("D:/lucence/index")); //创建在硬盘中
//2.创建IndexWriter,通过IndexWriter来写入我们的索引,standardAnalyzer标准分词器
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_36, new StandardAnalyzer(Version.LUCENE_36)); 
IndexWriter writer = new IndexWriter(directory, iwc);

Document doc = null;
//4.为Document添加Field
File f = new File("D:/lucence/example"); //D:/lucence/example下有3个文件,extjs1.txt,extjs1.txt,extjs1.txt, for(File file : f.listFiles()){
doc = new Document();
doc.add(new Field("content", new FileReader(file)));
doc.add(new Field("filename", file.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("path", file.getAbsolutePath(),Field.Store.YES, Field.Index.NOT_ANALYZED));
//5.通过IndexWriter添加文档到索引中
writer.addDocument(doc);
}

if(writer != null){
writer.close();
}
}上面是创建索引,下面是搜索public void search() throws Exception{
//1.创建Directroy,去哪搜索
Directory directory = FSDirectory.open(new File("D:/lucence/index")); //创建在硬盘中
//2.创建IndexReader
IndexReader reader = IndexReader.open(directory);
//3.根据IndexReader创建IndexSearch
IndexSearcher searcher = new IndexSearcher(reader); 
//4.创建搜索的Query,有多种Query
//创建parser来确定要搜索的内容,第二个参数表示搜索的域
QueryParser parser = new QueryParser(Version.LUCENE_36, "content", new StandardAnalyzer(Version .LUCENE_36));
//创建Query,表示搜索域为content中包含java的文档                /**
 * 这里搜索"内存"找的到,"Ext"找不到,我搜索的文件中肯定有Ext
 */ Query query = parser.parse("Ext"); //搜索内容包含java文档
//5.根据search搜索并且返回TopDocs,第二个表示搜索的条数
TopDocs tds = searcher.search(query, 2);
//6.根据TopDocs获取ScordDoc对象
ScoreDoc[] sds = tds.scoreDocs;
for(ScoreDoc sd : sds){
//7.根据searcher和scoreDoc对象获取具体的Document对象
Document d = searcher.doc(sd.doc);
//8.根据Document对象获取需要的值
System.out.println(d.get("filename") + "[" + d.get("path") + "]");
}

//9.关闭reader
reader.close();
}