Нормализация данных Unicode для индексации (для многобайтовых языков): в каких продуктах это делается? Есть ли Lucene/Hadoop/Solr?

У меня есть несколько (более 1 миллиона) документов, сообщений электронной почты и т. д., которые мне нужно проиндексировать и выполнить поиск. Каждый документ может иметь разную кодировку.

Какие продукты (или конфигурацию продуктов) мне нужно изучить и понять, чтобы сделать это правильно?

Мое первое предположение - это что-то на основе Lucene, но это то, чему я только учусь. Мое главное желание — начать трудоемкий процесс кодирования как можно скорее, чтобы мы могли параллельно создавать интерфейс поиска. Это может потребовать некоторой нормализации двухбайтовых символов.

Любая помощь приветствуется.


person halfbit    schedule 20.11.2010    source источник


Ответы (4)


Преобразуйте все в UTF-8 и пропустите через форму нормализации D. Это поможет в ваших поисках.

person tchrist    schedule 20.11.2010

Вы можете попробовать Tika.

person Xodarap    schedule 20.11.2010

Вы подразумеваете, что вам нужно преобразовать сами документы? Это звучит как плохая идея, особенно для большой разнородной коллекции.

Хорошая поисковая система будет иметь надежное определение кодировки. Lucene делает это, и Solr использует его (Hadoop не является поисковой системой). И я не думаю, что возможна поисковая система, которая не использует нормализованную кодировку в формате внутреннего индекса. Таким образом, нормализация не будет критерием выбора, хотя попытка обнаружения кодировки будет.

person Tobu    schedule 20.11.2010

Я предлагаю вам использовать Solr. ExtractingRequestHandler обрабатывает кодировки и форматы документов. С помощью Solr относительно легко получить работающий прототип. DataImportHandler позволяет импортировать репозиторий документов в Solr.

person Yuval F    schedule 21.11.2010