我已经索引了一些文本的数据库,并且数据库文本是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”);`

07-25 23:04