Как индексировать и искать файлы .doc - PullRequest
4 голосов
/ 19 июля 2009

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 25 июля 2009

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

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

1 голос
/ 19 июля 2009

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

0 голосов
/ 19 июля 2009

Может быть, вы хотели бы оформить заказ Solr .

...