Skip to content

Koziev/CorpusSearch

Repository files navigation

Полнотекстовый поиск по текстовому корпусу

Назначение утилиты

Программа выполняет быстрый поиск по текстовым файлам большого размера (проверено на файлах размером в 70 Гб).

Full text search

Каждый указанный файл индексируется отдельно. Файлы должны быть в кодировке utf-8.

Каждая строка файла (до символов \r\n) рассматривается как отдельная сущность, в которой выполняется поиск заданных ключевых слов.

Результат поиска - список строк файла, в которых найдены ключевые слова.

Программная реализация

Написано на C# в VisualStudio 2015 с использованием библиотек и технологий:

  • WPF - пользовательский интерфейс
  • Lucene.NET - полнотекстовый поиск с индексированием
  • log4net - логирование
  • Fluent NHibernate - хранение метаинформации о проиндексированных корпусах в SQLite
  • Newtonsoft.Json - (де)сериализация пользовательской конфигурации для сохранения истории поиска

Компиляция

Для сборки необходима VisualStudio 2015. Все необходимые для сборки зависимости в проектах подключены через NuGet.

Добавление (индексирование) корпусов

Перед использованием поиска по текстовому файлу, требуется его проиндексировать. Для этого на вкладке "Corpora" в главном окне нажмите "Add". Появится окно с параметрами нового корпуса. Там необходимо задать путь к текстовому файлу, который будет проиндексирован. После добавления нового корпуса запустите его индексирование кнопкой "Reindex" под списком корпусов.

Поиск по проиндексированном индексе

На вкладке "Search" в выпадающем списке выбираете проиндексированный корпус, в котором будем искать. Затем вводите в отдельном поле ключевые слова. Нажатие "Enter" запускает поиск, результаты которого будут отображены в нижней части панели вкладки.

About

Полнотекстовый поиск по текстовому корпусу с помощью Lucene.NET

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages