API: графические оболочки для поисковой машины

Простейший графический фронтэнд

Скриншот программы (gif) »

Исходные тексты программы находится в каталоге LEM\Demo\Ai\Solarix\Search\Samples\Simple_Frontend, если Вы загружали всю библиотеку LEM.

Скомпилированный код (файл bulldozer.exe) можно также найти в составе SDK проекта (подкаталог samples\bulldozer.net). Для запуска необходимо скопировать в этот же каталог файл \bin\faind.dll (это .NET компонент поисковой машины)  и двоичные файлы словаря.

Внимание

Данная программа не является полноценным приложением для конечных пользователей, поскольку при ее разработке не ставилась цель создать удобный интерфейс или реализовать все функциональные возможности поискового движка φaind.

 

Это простая графическая оболочка для поискового движка, написанная на C# (выбор языка принципиального значения не имеет в рамках Common Language Run-Time). Она позволяет визуально задать некоторые виды запросов и увидеть результаты поиска - список найденных файлов, а также участок файла, где был найден паттерн. Мы предоставляем полные исходные тексты этого примера, чтобы Вы могли пройти программу по шагам, расширить ее функциональность для своих нужд, и так далее.

Для ее работы, конечно, нужно, чтобы в рабочем каталоге программы находился файл faind.dll, который необходимо скачать (в составе SDK). Файл faind.dll - это .NET компонент, реализующий все функции поисковой машины, описание его см. здесь.

Конечно, требуется, чтобы на компьютере была установлена .NET Framework минимум версии 1.1 (скачать ее можно здесь).

На этом примере Вы сможете оценить главные достоинства среды .NET - легкость написания сложных программ на нескольких языках, простоту создания динамически подключаемых библиотек (сборок). Также легко увидеть родовые недостатки CLR.NET - при старте программы возникает ощутимая пауза из-за того, что код сборки фактически компилируется из внутреннего представления (MSIL) в машинный код. Для более близкого ознакомления с технологией .NET рекомендуем посетить некоторые сайты.

Передача запроса в виде текстовой строки опций - это, на наш взгляд, самый удобный способ взаимодействия с поисковой машиной. Благодаря этому прикладной программист избавляется от необходимости изучать достаточно сложное внутреннее представление запроса и писать код для его формирования. Если же недостатки (большое время парсинга строки запроса)  такого подхода перевешивают его достоинства (маловероятный случай - к примеру, если поиск очень быстрый), то необходимо использовать низкоуровневый API поисковой машины (он пока не реализован, хотя Вы можете использовать исходные тексты поисковой машины).

По самой программе frontend заметим, что двойной клик в списке найденных файлов приведет к запуску ассоциированного для файлов такого типа приложения. Все остальные операции предельно просты - ввод образца текста для поиска, выбор папок для поиска.

Возвращаемые сборкой результаты в виде XML достаточно легко анализировать стандартными средствами классов .NET. В частности, в программе показано, как перебирать узлы с помощью запроса XPath, а также как загрузить данные из XML в реляционную схему (объект класса DataSet).

Поисковая система βulldozer.net

большой скриншот поисковой системы .NETНачиная с релиза 0.82 программа βulldozer.net стала одним из примеров использования dll-версии поисковой машины на платформе .NET, хотя раньше она разрабатывалась как вполне законченное приложение. По этой причине код программы достаточно большой и содержит много функциональности, которая к собственно поисковой машине имеет опосредованное отношение (например, алгоритм локализации контролов на экранных формах). По своим возможностям программа уступает поисковой системе βulldozer.win32, в частности отсутствуют средства для управления алгоритмом выбора кодировки текста в файлах и средства для поиска на веб-серверах, а также многие другие возможности.

Для формирования пользовательского интерфейса в этой программе используются оконные классы Forms среды .NET. Дизайн интерфейса выполнен полностью средствами VisualStudio 2003, так что не составит труда модифицировать и расширять ее пользовательский интерфейс.

Заметим, что локализация пользовательского интерфейса выполнена очень просто, хотя и не эффективно - все текстовые сообщения хранятся в текстовом файле (кодировка utf-8) в примитивном формате. При открытии окна все контролы просматриваются и текстовые сообщения на них заменяются на строки из этого файла.

Интерфейс поисковой системы сделан достаточно простым - несколько закладок в главном окне позволяют задавать паттерн запроса (то есть что искать), область поиска (где искать), дополнительные параметры поиска (как искать), а также видеть результаты поиска (список файлов с контекстами, в которых есть соответствие паттерну):

настольный поиск для .NET

 

Вкладка для ввода паттерна запроса позволяет задать один из трех основных видов запросов (сравните с опциями поисковой системы Бульдозер для Win32):

1. Поиск отдельных слов, разделенных пробелами или знаками пунктуации

2. Группа регулярных выражений, применяемых к отдельным словам в тексте

3. Обычное регулярное выражение

Вкладка для задания области поиска позволяет выбрать либо индекс (то есть группу проиндексированных документов), либо задать каталоги/файлы для поиска без индексирования:

задание индекса или области поиска

и задать дополнительные условия на обрабатываемые файлы, например, на их размер.

Для индексирования группы документов (то есть для создания отдельного индекса) вызывайте окно управления индексатором и нажимайте кнопку "Создать". В появляющемся диалоге заполняйте поля названия индекса, каталогов (или файлов) с документами, и запускайте индексирование кнопкой "Создать" . По истечении некоторого времени, которое зависит прежде всего от объема индексируемых данных, в окне индексатора появится имя созданного индекса.

Обратите внимание, что окно индексатора содержит список созданных индексов, но возможности по управлению этим списком минимальны, в отличие от поисковой системы Бульдозер.Win32.

 

персональная поисковая система Интегра

Где скачать поисковую систему и SDK

Скачать SDK поисковой системы с примерами и другие компоненты можно здесь поисковая система

  © Mental Computing 2010
изменено 16-Aug-11