2010-07-27 5 views
0

J'ai indexé une base de données de certains textes et les textes de base de données sont de codage unicode. Lorsque je recherche un mot anglais avec recherche lucene tout va bien. Mais quand j'utilise une requête non-anglais comme: "تو" il me donne l'exception suivante:Recherche de Lucene avec des caractères Unicode

Exception dans le thread "principal" org.apache.lucene.queryParser.ParseException: Impossible d'analyser '??': '' ou '?' non autorisé comme premier caractère dans WildcardQuery à org.apache.lucene.queryParser.QueryParser.parse (QueryParser.java:187) à Search.main (Search.java:151) Causé par: org.apache.lucene.queryParser .ParseException: '' ou '?' non admis comme premier caractère dans WildcardQuery à org.apache.lucene.queryParser.QueryParser.getWildcardQuery (QueryParser.java:923) à org.apache.lucene.queryParser.QueryParser.Term (QueryParser.java:1347) à org .apache.lucene.queryParser.QueryParser.Clause (QueryParser.java:1250) à org.apache.lucene.queryParser.QueryParser.Query (QueryParser.java:1178) à org.apache.lucene.queryParser.QueryParser.TopLevelQuery (QueryParser.java:1167) à org.apache.lucene.queryParser.QueryParser.parse (QueryParser.java:182) ... 1 plus

Que dois-je faire?

Merci.

Répondre

2

deux points ici -

  • Quel est le type d'encodage de votre fichier srouce (* .java). Assurez-vous qu'il est utf-8
  • L'encodage par défaut de Java est susceptible d'être autre chose que utf8. Assurez-vous que vous spécifiez l'encodage comme:

    InputStreamReader (nouveau FileInputStream (nom de fichier), "UTF-8"); `

+0

Bonne idée mais je l'ai vérifié avant. Ce n'est pas la source du problème. – Shayan

+2

Je l'ai vérifié à nouveau. Tu as raison. C'était le problème. – Shayan