Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Индексация текстовых файлов


Автор: gigi1988 12.5.2010, 15:05
Доброе время суток! Есть такое задание:
Разработать и реализовать систему клиент-сервер, в которой сервер выполнен в виде службы windows, а клиент позволяет пользователю взаимодействовать с сервером с использованием графического интерфейса и управлять работой службы (установка, запуск и остановка службы). Программу клиента разработать с использованием языка C#. Сервер индексирует текстовые файлы в определенных каталогах и предоставляет возможность осуществлять поиск по словам в этих файлах. Запрос на поиск может содержать подстановочные символы * и ?. Клиент отображает запрос на поиск, результаты поиска. Также клиент задает интервал времени для автоматического начала индексации или принудительно запускает/останавливает процесс индексации. 
У меня вызывает вопросы процесс индексации. Я не совсем понимаю как должен выглядеть индексный файл, как его формировать и т.д. Если кто-нибудь сможет дать дельные советы, рекомендации, а самое главное литературу, буду очень благодарен.

Автор: Pavia 12.5.2010, 18:29
Почитай как гугл устроен.
Файлы не наш путь. Используй готовую  БД с СУБД.

Таблицу слов в которой прописаны в каких фаилах эти слова встречаются.
И для каждого файла таблица слов с их позициями в которых стоят эти слова.

Автор: Logo 14.5.2010, 09:22
Цитата

Почитай как гугл устроен.
Файлы не наш путь. Используй готовую  БД с СУБД.

Таблицу слов в которой прописаны в каких фаилах эти слова встречаются.
И для каждого файла таблица слов с их позициями в которых стоят эти слова. 


В MySQL есть индексы FULLTEXT, в Postgres тоже есть полнотекстовой индекс, да еще и с морфологическим поиском. Заводить отдельную таблицу с какими-то позициями слов - велосипед.

Автор: gigi1988 14.5.2010, 21:01
Цитата(Logo @  14.5.2010,  09:22 Найти цитируемый пост)
В MySQL есть индексы FULLTEXT, в Postgres тоже есть полнотекстовой индекс, да еще и с морфологическим поиском. Заводить отдельную таблицу с какими-то позициями слов - велосипед. 


Если можно поподробней описать как вы представляете себе процесс индексации.  Если я правильно понял то необходимо в БД добавлять содержимое текстов файлов и для поиска использовать FULLTEXT? 

Автор: Logo 14.5.2010, 21:32
Это был ответ на сообщение Pavia. Если вас устраивает база данных вместо файлов, то просто создаете для поля базы данных индекс FULLTEXT (mysql). Затем можно искать потому полю, в том числе с помощью символов *. Там есть несколько режимов поиска, с.м. документацию.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)