日期:2014-05-20  浏览次数:20745 次

org.apache.lucene.queryParser.ParseException这个异常呀,我从没见过,该怎么处理呀,苦恼啊
有人说把queryParser.Query改称queryParser.parse 但是我本身用的就是
queryParser.parse 方法 就是抛异常啊 到底该怎么改呀


以下是我出现的异常
org.apache.lucene.queryParser.ParseException: Encountered "<EOF>" at line 1, column 0.
Was expecting one of:
  <NOT> ...
  "+" ...
  "-" ...
  "(" ...
  <QUOTED> ...
  <TERM> ...
  <PREFIXTERM> ...
  <WILDTERM> ...
  "[" ...
  "{" ...
  <NUMBER> ...
   
 at org.apache.lucene.queryParser.QueryParser.generateParseException(QueryParser.java:1226)
 at org.apache.lucene.queryParser.QueryParser.jj_consume_token(QueryParser.java:1109)
 at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:759)
 at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:684)
 at ch2.lucenedemo.process.Test.RunVsIndex(Test.java:142)
 at ch2.lucenedemo.process.Test.main(Test.java:169)

 

------解决方案--------------------
你的查询字符串不正确
很可能是输入了一个空字符串来进行查询

系统报告说: 
org.apache.lucene.queryParser.ParseException: 遇到 "<EOF>" 在第一行0列. (说明你的query字符串从第一个字符开始就是个结束符)
(query字符串期待以下之一:
<NOT> ...
"+" ...
"-" ...
"(" ...
<QUOTED> ...
<TERM> ...
<PREFIXTERM> ...
<WILDTERM> ...
"[" ...
"{" ...
<NUMBER> ...