Как индексировать и искать файлы .doc

У меня есть приложение, в которое необходимо загрузить файлы .doc. Затем эти документы должны быть проиндексированы, и вся коллекция документов должна быть доступна для поиска. Это будет работать на Windows Server без установленного Word, с использованием IIS и SqlServer, но я бы не хотел привязываться к полнотекстовому индексированию SqlServer.

Я думал об использовании Lucene.Net для части индексации, и мне было интересно, как лучше всего получить текст из файлов .doc. Вероятно, я мог бы извлечь текст, прочитав весь поток, а затем используя регулярное выражение для извлечения любых обычных символов, но это кажется здоровенным и подверженным ошибкам.

Я видел статью об использовании iFilters, которая звучит многообещающе, но я решил опубликовать ее, так как я не знаком с ней.

P.S. Если это имеет значение, в этих файлах .doc будут поля для слияния, и в настоящее время нет другой альтернативы для формата .doc.


person Jared    schedule 18.07.2009    source источник


Ответы (3)


Что касается решения, которое не требует внешней программы, похоже, что решение iFilter — это то, что нужно (хотя вы можете считать это внешней программой).

Вот простая статья CodePlex и код о том, как это можно сделать: http://www.codeproject.com/KB/cs/IFilter.aspx

person Jared    schedule 24.07.2009

В наших приложениях на основе PHP мы всегда использовали внешние программы, подобные этой: doc2txt. Затем мы взяли текст и сохранили его в базе данных. Если вы введете в Google запрос «doc2txt», вы найдете много разных программ, делающих одно и то же. Просто возьмите тот, который подходит вам лучше всего.

person Raffael Luthiger    schedule 18.07.2009

Может быть, вы захотите проверить Solr.

person Sinan Taifour    schedule 18.07.2009
comment
Похоже, для этого нужен Apache. Мы запускаем IIS. - person Jared; 19.07.2009
comment
Вы можете запустить его отдельно и общаться с ним, используя его API. - person Sinan Taifour; 19.07.2009