我已经索引了一些文本的数据库,并且数据库文本是Unicode编码的。
当我使用Lucene搜索英语单词时,一切正常。但是,当我使用非英语查询(例如“تو”)时,出现以下异常:
Exception in thread "main" org.apache.lucene.queryParser.ParseException: Cannot parse '??': '*' or '?' not allowed as the first character in WildcardQuery
at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:187)
at Search.main(Search.java:151)
Caused by: org.apache.lucene.queryParser.ParseException: '*' or '?' not allowed as first character in WildcardQuery
at org.apache.lucene.queryParser.QueryParser.getWildcardQuery(QueryParser.java:923)
at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1347)
at org.apache.lucene.queryParser.QueryParser.Clause(QueryParser.java:1250)
at org.apache.lucene.queryParser.QueryParser.Query(QueryParser.java:1178)
at org.apache.lucene.queryParser.QueryParser.TopLevelQuery(QueryParser.java:1167)
at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:182)
... 1 more
我该怎么办?
谢谢。
最佳答案
这里有两点-
您的源文件(* .java)的编码类型是什么。确保它是UTF-8
Java的默认编码可能不是utf8。确保您指定类似的编码:
InputStreamReader(new FileInputStream(filename),“ UTF-8”);`