日期:2014-05-19  浏览次数:51006 次

lucene 报错

初次学lucene,遇到下面错误   请我是什么问题?

搜索代码:

/**
 * 搜索 
 * @param type  搜索的类型   content or path or filename
 * @param content  搜索的条件  
 * @param size  搜索数据的条数
 */
public void sercher(){
try {
//1、创建 Directory
 Directory directory = FSDirectory.open(new File("D:/lucene/index01")); //创建在硬盘中 
//2、创建 IndexReader  读取所有索引  
 IndexReader reader=IndexReader.open(directory);
//3、根据IndexReader 创建IndexSearcher
 IndexSearcher searcher=new IndexSearcher(reader);
//4、创建parser来确定 搜索文件的内容     第二个参数表示搜索的域  
 QueryParser parser=new QueryParser(Version.LUCENE_35, "content", new StandardAnalyzer(Version.LUCENE_35));
// 查询内容中包含参数 content的文档 
 Query query=parser.Query("java");  
//5、根据 searcher搜索并返回TopDocs
 TopDocs tds=searcher.search(query, 10); // 取10条数据
//6、根据TopDocs获取ScoreDoc对象
 ScoreDoc[] sds=tds.scoreDocs; //所有文档所存的id号
 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();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}



org.apache.lucene.queryParser.ParseException: Encountered "<EOF>" at line 1, column 0.
Was expecting one of:
    <NOT> ...
    "+" ...
    "-" ...
    "(" ...
    "*" ...
    <QUOTED> ...
    <TERM> ...
    <PREFIXTERM> ...
    <WILDTERM> ...
    "[" ...
    "{" ...
    <NUMBER> ...
    <TERM> ...
    "*" ...
    
at org.apache.lucene.queryParser.QueryParser.generateParseException(QueryParser.java:1818)
at org.apache.lucene.queryParser.QueryParser.jj_consume_token(QueryParser.java:1700)
at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1327)
at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1237)
at org.itat.test.HelloLucene.sercher(HelloLucene.java:99)
at org.itat.test.TestLucene.testSearcher2(TestLucene.java:26)
at org.itat.test.TestLucene.main(TestLucene.java:36)
lucene java