Поиск Lucene с использованием символов Юникода - PullRequest
0 голосов
/ 27 июля 2010

Я проиндексировал базу данных некоторых текстов, и тексты базы данных имеют кодировку 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

Что мне делать?

Спасибо.

1 Ответ

2 голосов
/ 27 июля 2010

Здесь две точки -

  • Какой тип кодировки вашего исходного файла (* .java).Убедитесь, что это UTF-8
  • Кодировка Java по умолчанию, скорее всего, будет отличной от utf8.Убедитесь, что вы указали кодировку, например:

    InputStreamReader (новый FileInputStream (имя файла), "UTF-8"); `

...