使用 Unicode 字符进行 Lucene 搜索

发布于 2024-09-11 07:26:53 字数 1080 浏览 5 评论 0原文

我已经对一些文本的数据库建立了索引,并且数据库文本采用 Unicode 编码。 当我使用 Lucene 搜索搜索英语单词时,一切正常。但是,当我使用像“Tuœ”这样的非英语查询时,它会出现以下异常:

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

我应该做什么?

谢谢。

I have indexed a database of some texts and the database texts are of Unicode encoding.
When I search for an English word with Lucene search everything goes OK. But when I use a non-English query like "تو" it gives me the following exception:

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

What should I do?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凡尘雨 2024-09-18 07:26:53

这里有两点 -

  • 源文件(*.java)的编码类型是什么。确保它是 UTF-8
  • Java 的默认编码很可能不是 utf8。确保指定编码,例如:

    <块引用>

    InputStreamReader( new FileInputStream(文件名), "UTF-8");`

Two points here -

  • What is the encoding type of your source file (*.java). Make sure it is UTF-8
  • The default encoding of Java is likely to be something other than utf8. Make sure you specify the encoding like:

    InputStreamReader( new FileInputStream(filename), "UTF-8");`

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文