Добавить язык в мою поисковую систему, арабские буквы в Eclipse - PullRequest
2 голосов
/ 04 июня 2011

Я хочу сделать поисковую систему на арабском языке, и у меня уже есть код для поиска на английском, мне просто нужно было изменить анализатор, но когда я написал на арабском языке в консоли, я перешел на UTF-8 и получил 0поэтому я считаю, что затмение дает арабское слово для запроса в коде, и запрос не распознает этот код, мой вопрос: как мне сделать арабское слово читаемым для запроса?

QueryParser parser = new QueryParser(Version.LUCENE_30,
             "contents", new ArabicAnalyzer(Version.LUCENE_30));

Ответы [ 3 ]

0 голосов
/ 05 июня 2011

Я полагаю, вы читаете такие символы:

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
    String token = reader.readLine();
    System.out.println(token);
} catch (IOException e) {
    e.printStackTrace();
}

В этом случае кодировка символов точно такая же, как у текущей системной кодовой страницы (по крайней мере, в Windows). Проблема в том, что Eclipse позволит вам вставлять арабские буквы в окно консоли, но при этом потеряет информацию. Я не уверен, поможет ли установка системной кодовой страницы (в региональных настройках ОС) для windows-1256, но это может помочь. Я попытался передать Charset.forName("windows-1256") в качестве второго параметра InputStreamReader, а затем ввести что-то с помощью арабской клавиатуры, но это не работает.
Хорошо, но мы не такие беспомощные. Так как это предназначено для тестирования (верно?), Вы можете использовать один из двух подходов для решения проблемы:

  • Использовать базовый интерфейс Swing (JFrame + JTextField + JLabel и, возможно, некоторую кнопку)
  • Предоставить механизм удаления и ввести символы в виде кодовых точек (т. Е. \ U0629)

Лучшим решением будет исправить Eclipse (который не работает) и, например, реализовать Console (System.console ()), но я не уверен, что они примут такой патч.

0 голосов
/ 27 июня 2011

Вы можете попробовать ввести символы Unicode в консоли вместо арабских символов.Используйте конвертер, такой как этот , чтобы преобразовать арабский текст в символы Unicode.

0 голосов
/ 04 июня 2011

Попробуйте поискать в свойствах проекта, в разделе «Ресурс». Установите кодировку текстового файла в UTF-8 и посмотрите, решит ли это проблему Я предполагаю, что у вас уже установлены правильные шрифты.

...