Индексирование большого количества файлов XML - PullRequest
0 голосов
/ 26 января 2011

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

У меня есть пара тысяч файлов XML, которые мне нужны для поиска в базе данных SQL Server 2008.Файлы XML в настоящее время находятся на диске и не являются частью какого-либо хранилища.Под «доступным для поиска» я имею в виду то, что мне нужно иметь возможность сделать что-то вроде (здесь psuedo-code)

SELECT *
FROM tbl_xmldata
WHERE CONTAINS('xmldata', 'some search word')

tbl_xmldata будет таблицей, в которой хранятся файлы XML, а xmldata будетстолбец с фактическими данными XML.

Последнее требование (и на самом деле это жесткое требование) заключается в том, что при обнаружении попадания (и под «попаданием» я имею в виду, что обнаружен файл XML, содержащий искомый термин), мне нужноиметь доступ к формулировке, которая окружает, где был найден поисковый термин.Например, если бы у меня был файл XML, в котором было следующее:

Мы считаем эти истины самоочевидными, что все люди созданы равными

и я искал слово «само собой разумеющееся», тогда я должен иметь возможность вернуть около 20 символов до и после того, где был найден поисковый термин.Я затронул только этот последний момент, потому что - по моему опыту в любом случае - полнотекстовая индексация SQL Server ограничена тем, что она может только сказать вам, находится ли термин / слово / фраза в определенном документе (при условии, что документ хранится вфайловый поток SQL Server 2008), и он не может сказать вам контекст, в котором находился термин / слово / фраза.

Любая помощь будет принята с благодарностью!Спасибо!

1 Ответ

0 голосов
/ 08 февраля 2011

Взгляните на проект Solr . Менее зрелая, но очень многообещающая альтернатива - Elastic Search

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...