SpaceLib

Новости Главная Введение Программы Загрузка Карта сайта

 

SSearch или "Найдется все..."!


   Как я уже отмечал SSearch.exe это программа офф-лайн поиска файлов в p2p-сетях на основе StrongDC или его клонов - ApexDC, Pelink, Flylink и т.п. Поиск реализован путем просмотра списков файлов пользователей. Если полное имя файла соответствует заданным вами условиям, то информация о таком файле будет добавлена в результат поиска. Используя результаты поиска, вы можете предложить вашей клиентской программе (обычно это StrongDC) загрузить из p2p-сети найденный файл.  (Скачать...)

В SSearch интегрирован Сфинкс (полнотекстовая поисковая система)

      Теперь несколько подробнее. В пиринговых сетях на основе StrongDC и его клонов поиск реализован путем посылки запросов от одного пользователя ко всем остальным (через хаб) с просьбой поискать нет ли у них нужного файла. Сами понимаете, такой механизм накладывает серьезные ограничения на сложность и скорость поиска. Ведь что бы реализовать даже простейший поиск по двум фрагментам символов, надо просматривать весь список имен расшаренных файлов целиком и никакие индексы  вам уже не помогут. Конечно можно создать полный индексированный словарь слов и связать его с именами файлов, но списки имен файлов это не текст и может так получиться, что такой словарь по размеру будет как сам список имен файлов. По этому, авторы StrongDC  рассудили здраво и реализовали только простейший поиск, но наложили на него существенные ограничения. Самым главным  является не возможность задавать сложные поисковые запросы (отсутствует поддержка логических операций И, ИЛИ, НЕ), ограничение на количество выдаваемых ответов (не более 10), а также  скорость и  обязательность исполнения вашего поискового запроса другими пользователями. Такой механизм поиска, когда ваш поисковый запрос исполняет клиентская программа другого пользователя накладывает еще одно фундаментальное ограничение: пользователь должен быть подключен к пиринговой сети и его клиентская программа должна работать, полное отсутствие анонимности поиска. Вот эта безрадостная картина и послужила толчком к написанию этой программы.

Как работает SSearch ?

Что бы снять перечисленные выше ограничения на поиск, надо закачать все списки имен файлов пользователей и в них, в режиме офф-лайн уже самому искать нужные файлы с какой угодно сложностью запроса. Для этого перед началом поиска вы должны загрузить списки файлов пользователей из вашей p2p-сети. Не забудьте установить в настройках клиента опцию <Не удалять списки файлов при выходе>.

Дале, подключитесь к p2p-сети, выберите всех пользователей хаба. Щёлкните правой кнопкой мыши на отмеченных пользователях и в меню выберите пункт - "Сравнить очередь". Пойдет загрузка списков. Когда она завершится, удалите те списки из очереди загрузки, которые не скачались по какой либо причине.

  

    На закладке <Обновить списки файлов пользователей> задайте путь к папке, где хранятся списки файлов. Нажимайте клавишу <Обновить!> в SSearch.exe.

Формируются сприски файлов для каждого пользователя.

Процесс обновления может занять приличное время в зависимости от производительности вашего компьютера. На рисунке видно, что вы перед обновлением должны указать программе, где StrongDC  хранит списки файлов. Сами списки это сжатые xml файлы. Вот фрагмент из такого файла:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<FileListing Version="1" CID="4SCK7IJ7E6WA37S7ZQWV35HAO74RVLMFODEQOMA" Base="/" Generator="DC++ 0.704">
<Directory Name="библиотека">
<Directory Name="книги на DVD">
<Directory Name="Анатолий Ситель. Соло для позвоночника. 2006 ISBN 5-85407-026-Х">
<File Name="Соло для позвоночника.pdf" Size="1862514" TTH="WUHESG5FLDF2OQQBLWXONFDE5CGZSQSYM2FRL6Y"/>
</Directory>
</Directory>

<File Name="Как сделать Хаб лучше.txt" Size="896" TTH="KCRXHGORTAN3C3ENZ5Q5U6LIIQ2AO6XFCARSIUA"/>
</Directory>
</FileListing>

   Программа сначала распаковывает сжатый файллист, ищет файлы удовлетворяющие условиям, заданным перед обновлением. По умолчанию все файлы добавляются в базу поиска. Если например, вас интересует только поиск  видео и аудио файлов, задайте все возможные расширения таких файлов и тогда в базу поиска будут добавлены только они. База поиска это файлы с расширением *.Find в именах которых сохраняются имена файллистов пользователей. Внутренний формат такой:

  [Хешь файла];[длина];[Имя файла до конца строки]

  Пример:

WUHESG5FLDF2OQQBLWXONFDE5CGZSQSYM2FRL6Y;1862514;\библиотека\книги на DVD\Анатолий Ситель. Соло для позвоночника. 2006 ISBN 5-85407-026-Х\Соло для позвоночника.pdf
KCRXHGORTAN3C3ENZ5Q5U6LIIQ2AO6XFCARSIUA;896;\
библиотека\Как сделать Хаб лучше.txt

  Во время поиска каждый файл по очереди загружается в память, разбивается на строки и уже к каждой строке применяется условие поиска.  Помните поиск идет в названиях файлов и путях к нему. В поиске также участвует символьный Хэш. Задавайте ключевые фрагменты слов в поле поиска. Регистр букв игнорируется.
Примеры:
"челов паук"
"1с предприят /бухгалтери"
и т.д. почти как в поисковых машинах.

Перед ключевыми фрагментами слов возможны следующие управляющие символы:
"+" - следующий фрагмент текста за знаком "плюс" должен быть обязательно в имени файла. (Операция И).Знак плюс может быть опущен.
"-" - следующий фрагмент текста за знаком "минус"  НЕ должен быть в имени файла. (Операция НЕ).
"~" или "/"- если в имени файла будет найден фрагмент текста, следующий за знаками "тильда" или "косая черта", то такой файл будет обязательно включен в результат поиска. (Операция ИЛИ).
"_" - знак "подчеркивание" обозначает пробел.
"?" - знак маскировки символа. (Например, задав для поиска строку <б?й> будут найдены все файлы в именах которых, присутствует последовательность букв <б>, <любой символ>, <й>. Под такую маску подпадают слова: буй, бай, бой, собой, байт и т.д.).

   Теперь для примера поищем журнал "Авиация и космонавтика". Поисковым выражением будет: "авиация космонавти". На рисунке  мы видим как идет поиск.

А вот и результат:

  Если щёлкнуть на имени файла то внизу будет представлена информация о нем в более удобочитаемом виде. Что бы загрузит данный файл нажмите на кнопу "закачать файл" или сделайте  двойной клик левой кнопкой мыши  на нем.

 Программа вызовет StrongDC  и передаст ему магнет ссылку на файл. Не забудьте в настройках включить опцию перехвата магнет ссылок. Но перед загрузкой надо убедиться, что такого файла еще у вас нет. Для этого включите "Доп. фильтры" и появится панель "фильтры на результат запроса". Смотрим рисунок...

  Зададим исключаемый файллист. Это должен быть ваш файллист. Для того что бы он был преобразован из файла "C:\Program Files\sdc205\Settings\files.xml.bz2", скопируйте его в папку "C:\Program Files\sdc205\Settings\FileLists" с изменением имени на "ВашНик.имитация_хеша.xml.bz2". (Мои пути к фалам могут отличаться от ваших!) После выполнения операции  "Обновить!" в подпапке "..\All", которая находится в папке нашей программы, появится ваш файллист. Что бы он не участвовал  в основном поиске перенесите его в подпапку "..\SpaceLib", которая находится в папке с нашей программой. Все эти операции с переносами файлов можно сделать один раз и сохранить в командных файлах. Теперь в нашем примере исключим файлы которые уже у нас есть и расшарены. Просто поставьте галку в "Искл.Файллист".

 Как видите у меня в "шаре" уже есть все эти файлы, а значит фильтр исключил их все из найденного.  Теперь поищем журнал "Хакер". Для этого зададим тип файлов "Документы", размер больше 1 МБайта и поставим галку "Использовать дополнительные условия  во время поиска".

  Как видим в результат попали не только журналы но и все документы где в имени файла есть фрагмент "хакер". Теперь наложим фильтры: год 2007, исключать файлы с одинаковыми хешами, исключать свои файлы. В результате находим два файла доступные для загрузки у пользователей.

 Теперь попробуем поискать и загрузить книги по Паскалю (Delphi). Сразу откидываем *.Doc.  

   Но и это еще не все. Слишком много шлака. Иногда даже  нельзя предположить,  как пользователь назовет нужный вам файл и в какую папку положит его. Шедевр представлен ниже. GiviZurabovi4 решил хранить самоучитель по Делфи в папке "База сотовых телефонов 2006".... На рисунке ниже вы видите как я усиливаю условия отбора файлов и исключаю *.rtf  и*.txt файлы.

 

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

 

Нажав кнопку "Создать Q.xml" создадим файл Q.xml в папке с нашей программой. На рисунке ниже подсвечен этот файл. (Не пугайтесь обилию файлов, это каталог с исходниками. Просто некотором этот рисунок  скажет больше и о  чем не нужно здесь писать). Не забываем о том что можно сохранить найденное в файл, а потом вернуться к результату поиска. Для хранения файлов с результатами поиска я использую папку "Найденное". Это так же помогает, когда вы задали слишком жесткие условия фильтрации результата. Всегда можно откатиться назад. Программа запоминает и позволяет откатиться лишь на 1 шаг назад, а тут какой уровень фильтрации запроса запомнил туда при необходимости и откатился!

 

  Теперь вернемся к массовой загрузке. Она нужна, когда надо загрузить "много" файлов. Бывало я загружал тысяч по 5 - 10 за один раз. Каждый раз нажимать кнопку при таком количестве файлов нет необходимости. Надо сформировать Q.xml и вставить его содержимое в файл "C:\Program Files\sdc205\Settings\Queue.xml". Вставку я делаю в стандартном Блокноте. Только не забудьте перед вставкой выйти  из StrongDC -а!

 Перед модификацией "C:\Program Files\sdc205\Settings\Queue.xml" обязательно сделайте его копию!!!! Это важно. (Работа процедуры "массовая загрузка" в дальнейшем будет модифицирована с целью расширения функциональности.)

 

   Теперь приведу пример поиска видео файлов. В нашем случае ищем сериал "Потерянные" последние серии. На момент написания статьи это 4 сезон, 8 серия. Задаем доп. условия по размеру и типу файлов. Откидываем похожие названия сериалов. Ну и находим то что искали. Напомню что "косая черта" в запросе это "или".

 

Теперь поговорим о некоторых возможных проблемах.

  Если у вас антивирус Касперский версии ниже 6.0 то возможны ошибки при обновлении списков файлов пользователей. Антивирус постоянно пытается проверять батники, которые используются программой для управлением процессом распаковки файллистов. Эта проверка сопровождается захватом этого батника на "эксклюзив", что мешает работе программы. Проще  всего во время обновления приостановить работу антивируса нажав "Паузу".

  После того как проблемы устранены, процесс обновления должен идти без ошибок. Для выполнения процедуры обновления списков файлов программе необходим распаковщик файлов формата *.bz2. Таким распаковщиком является  архиватор 7-Zip. Он должен находиться в папке с программой SSearch. Думаю что вскоре программа сама сможет распаковывать файлы формата *.bz2 и от услуг 7-Zip можно будет отказаться. (Следите за новыми версиями программы).

 

 На этом рисунке показано как должно выглядеть завершение операции обновления. Обратите внимание на общий размер файлов пользователей - 92 ТБайта. Вполне достойно лля бесплатной локалки местного телекома.

 

09-05-2008 - добавлен оптимизатор - кнопка "Оптимизировать" (здесь не показана, объединяет списки файлов пользователей с одинаковыми никами, но с разных хабов)
 

  Теперь немного о магет-ссылках. Это очень мощный инструмент пиринговых сетей. О них должен знать каждый  пользователь. Читайте текст на рисунке. От себя добавлю, что хеш это результат работы некоторого алгоритма над содержимым файла. Этот результат обычно сохраняется и представляется нам в виде символьной строки например: "KCRXHGORTAN3C3ENZ5Q5U6LIIQ2AO6XFCARSIUA". В разных пиринговых сетях используются разные алгоритмы вычисления хешей. Но принцип всегда один: если содержимое двух файлов отличается хотя бы 1 битом, то такие файлы будут иметь РАЗНЫЕ хеши. Это позволяет уникально идентифицировать любой файл, даже не зная его названия. 

 

Турбо-поиск. Маленький Help.


   Турбо-поиск задуман как альтернатива простому медленному поиску, используемому данной программой. Идея проста: информацию о расшаренных файлах пользователей с помощью этой программы записать в файлы формата HTML, а персональную поисковую систему использовать для поиска в этих файлах. Такой поиск будет очень быстр. Поисковик в HTML файле найдет магнет-ссылку и описание файла для скачки.
 

Рис. Турбо-поиск и персональная поисковая система помогут вам быстро искать файлы


Для удобства восприятия результатов поиска была выбрана модель: один УНИКАЛЬНЫЙ файл - один УНИКАЛЬНЫЙ файл описатель в формате HTML. Например, в хабе у Васи, Ксюши и Пети есть фильм "Гиа":

Ник: Вася, файл: Gia - вполне ничего, смотреть мона.avi, Хэш:ААА ;
Ник: Ксюша, файл: Гиа - пикантный фильм с Анжелиной Джоли.avi, Хэш:ААА ;
Ник: Петя, файл: Жесткий фильм -э- с Анджелиной Джоули.avi , Хэш:БББ ;

Как мы видим у Васи и Ксюши файлы с фильмом АБСОЛЮТНО одинаковы, т.к. имеют один и тот же хеш (TTH) = "ААА", у Пети фильм то тот же, но отличается или разрешением или битрейтом (достоверно сказать не возможно). Это следует из того, что хэш у Петиного фильма "БББ", а не "ААА", как у Васи и Ксюши. Наша программа, проанализировав значения хешей, создаст два файла html с названиями: ААА. html , БББ.html. В первый файл она поместит информацию о файлах Васи и Клсюши а во второй о файле Пети. Пример файла "ААА.Html" :

Magnet [Вася] \ хаб-фильмы \ Gia - вполне ничего, смотреть мона.avi
Magnet [Ксюша] \ видео \ Гиа - пикантный фильм с Анжелиной Джоли.avi

    После индексации посковиком этих файлов, можно будет в них практически мгновенно находить информацию о расшаренных в хабах файлах и качать их используя магнет- ссылки.
Перед тем, как начать конвертацию информации о файлах в файлы формата Html, необходимо задать папку для Html файлов ("Папка, где будут храниться файлы для ВАШЕЙ персональной поисковой системы") и нажать кнопку "Создать *.html из списков файлов пользователей (из *.find)". После завершения процесса конвертации, индексируйте вашей Персональной поисковой системой папку с созданными Html файлами. Все, можно быстро искать файлы в хабе!
 

Немного "лирики".

Русская мудрость: "Гладко было на бумаге, да забыли про овраги".

   К сожалению, с Турбо-поиском не все гладко. Средняя скорость создания Html файлов около 300 000 в час, на стандартном SATA диске. У нас в хабе около 36 000 000 файлов расшаренных пользователями. Значит, только создание самих файлов Html без их индексации, займет более 3 суток.
    Для сравнения:
на крупнейшем в рунете сайте яндекса "www.narod.ru" всего около 1 900 000 файлов на август 2008г.;
запрос в яндексе по фрагменту ".wmv | .avi | .mpg | .mpeg | .mkv | .sf2 | .vob | .mp4 | .3gp | .mov | .rm | .mp3 | .ogg | .wav | .mid | .au" дает 312 мил. страниц, в нашем маленьком хабе такойже запрос дает 28 мил. файлов т.е. почти одну десятую часть яндекса :).

    Если вам не нужен поиск всех файлов сразу, вы можете при "Обновлении списков файлов пользователей" задать фильтры, например: оставить только видео и аудио файлы, остальные не включать в списки поиска.
    Если вам необходима селекция файлов не только по типу, но и по размеру (фильмы с хорошим качеством не бывают меньше 650 Мбайт), то можно сначала отобрать такие файлы при стандартном поиске (поисках), результат сохранять в файлы *.Finds, а потом с помощью кнопки "Создать *.html из отобранных файлов (из *.finds)" конвертировать в html только их. Так, у нас в хабе из 36 000 000 файлов только 370000 книги, журналы, документы (*.pdf, *.djv, *.djvu, *.chm). Т.е. 1 час с хвостиком на конвертацию и индексацию, что вполне приемлемо.
   При необходимости полной индексации файлов хаба, рекомендую выделить специальный логический раздел жесткого диска только под файлы *.html. Рассмотреть возможность организации RAM диска. Протестировать утилиты принудительного кеширования файлов.

    Для того чтобы, Турбо-поиск стал возможен, необходимо установить персональную поисковую систему. Если у вас Windows XP или Vista, персональный поисковик у вас уже есть, но использовать его я не рекомендую. Основной недостаток встроенного поисковика это отсутствие поддержки русского языка и не возможность управлять процессом индексации.
   Существует две основные БЕСПЛАТНЫЕ программы персонального поиска:
Персональный Яндекс и Персональный Gooogle. Лично мне больше нравится Яндекс. Gooogle по умолчанию слишком "деревянный". Основные его недостатки: устанавливается куда захочет, сразу пытается индексировать все диски, не умеет управлять размещением индексных файлов, управление областями индексации "не вразумительное". Из коммерческих версий можно посмотреть на Архивариус 3000 (страница загрузки  полнофункционально ознакомительной версии на 30 дней http://www.likasoft.com/ru/document-search/index.shtml).

Рис. Архивариус 3000 удобно использовать для индексации небольшого количества файлов. В папке K:\test_xab хранится около 370000 файлов с информацией о книгах.


  Турбо-поиск может помочь администраторам хаба "поднять" поиск файлов хаба. Всех проще тем, у кого уже есть сайт с форумом поддержки хаба и встроенным поиском по сайту. Им остается только проиндексировать папку с файлами, созданными в режиме турбо-поиска. Если индексация всех файлов хаба слишком тяжелая задача для хоста на котором размещен сайт, можно поступить "хитрее". Надо собирать статистику запросов поиска  внутри хаба, и при создании списков файлов пользователей использовать эту статистику в качестве фильтра. При таком подходе 95 процентов поисковых запросов будут обслужены корректно.
 

Файл Exts.txt

   Файл Exts.txt хранит списоки расширений файлов. В каждой строке описывается свой тип документов. Примерное содержание файла:

Любой (служебная строка)
wmv;avi;mpg;mpeg;mkv;sf2;vob;mp4;3gp;mov;rm;
mp3;ogg;wav;mid;au;
jpeg;jpg;gif;bmp;png;ief;tif;pnm;pbm;pgm;ppm;rgb;xbm;xpm;
pdf;djvu;djv;rtf;doc;ps;txt;text;htm;html;chm;
Заданые пользователем (служебная строка)

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

Sphinx (Сфинкс).

SSearch интегрирует в себя Sphinx.

Sphinx (Сфинкс) это полнотекстовый поисковый сервис. SSearch интегрирует в себя Sphinx. Теперь с помощью Sphinx-а можно очень быстро (с учетом русской и английской морфологии) искать файлы и пользователей, кто  их  расшарил. Типичное время поиска среди 220 000 000 магнет-ссылок от 0.1 до 3 секунд. Сфинкс находится в папке sphinx-0.9.8.1-win32 и состоит из двух основных программ:
  \bin\indexer.exe - индексатора. Она индексирует наши данные.
  \bin\searchd.exe - поискового "демона" или сервиса в терминах win-платформы.

Немного теории.

   Что бы SSearch смог использовать  Сфинкс, он (Сфинкс) должен проиндексировать базу данных (БД) SSearch-а,  в которой будут хранится записи о каждом расшаренном файле. Обычно БД это файл с расширением (*.dat), в котором в полях фиксированной длины хранятся:
  Ник пользователя- "nic" -30 байт,
  имя расшаренного файла - "fname" - 255 байт,
  хэш расшаренного файла файла - "tth" - 39 байт.
  размер файла - 8 байт.

   Единичный набор этих полей образует одну запись общей длиной 332 байта. Таких записей может быть сколь угодно много. Каждая запись имеет свой уникальный номер. Индексируя  БД Сфинкс запоминает эти уникальные номера и впоследствии во время поиска выдает их в качестве результата. Зная такой номер, в файле БД можно легко найти нужную запись, умножив ее номер на длину и получив смещение от начала файла. Далее остается только прочитать значение полей и выдать их пользователю в качестве результата поиска. БД (файл(ы) *.dat) создается из списков файлов пользователей, которые хранятся в папке \ALL. После создания БД, (например: Sphinx.dat), папку \ALL можно очистить от файлов. Они уже не нужны, если вы предполагаете пользоваться только поиском Сфинкса.

Практика. Настраиваем Sphinx (Сфинкс).

Заходим в папку  ..\sphinx-0.9.8.1-win32\bin и редактируем файл sphinx.conf . Он уже настроен, остается только правильно указать  ваши абсолютные пути и IP вашего компьютера. У меня это абсолютный путь: "D:\prg\Простой_поиск_в_шаре". Т.е. это имя той папки, где находится SSearch. Пробелы в именах папок не допустимы! Это ограничение текущей версии Сфинкса.

Папка со Сфинксем

   Теперь запускайте inst.bat (не забудьте исправить путь к sphinx.conf в inst.bat ). Он установит Сфинкс как сервис, но не запустит его. Если вы еще не создали БД SSearch-а перейдите на вкладку "Sphinx" .

Закладка настроек "Sphinx"

 Обратите внимание на список "Индекс по которому будем искать" у меня он выглядит так:

D:\prg\Простой_поиск_в_шаре\Sphinx.dat;xmlpipe2_source
D:\prg\Простой_поиск_в_шаре\Sphinx_local.dat;xmlpipe2_source_local

   У Вас абсолютный путь "D:\prg\Простой_поиск_в_шаре" должен быть свой. Для изменения списка нажмите кнопку "Изменить" и редактируйте его как обычный текст. Этот список хранится в файле "SphinxIdex.txt". В данном случае термин "индекс" употреблен обобщенно. На самом деле "связка"

 "имя_файла_БД_ SSearch";"имя_индекса_Сфинкса" 

это и есть база данных в обычном понимании. Таких "связок" может быть много. Я имею два индекса "Десятка самых больших российских хабов" и "Мой локальный хаб". Т.к. локальный хаб моего провайдера из внешней сети  не виден и скорость скачки с него в десятки раз выше.
 После того как вы настроили список "Индекс по которому будем искать", нажимайте кнопку "Подготовить данные!". Процесс пойдет и займет некоторое время. Напомню, что в  это время файлы (*.Find) из папки \ALL будут преобразовываться в один файл (*.dat). Размер этого файла будет равен размеру файлов в папке \ALL умноженному на 2.6 . Теперь файл (*.dat) можно индексировать. В папке  ..\sphinx-0.9.8.1-win32\bin запускаем index.bat и ждем конца индексации. Если все прошло удачно запустите:

  search.exe avi

search.exe - программа для тестирования поиска, без запуска сервиса searchd. Если индексы построены правильно, она выдаст уникальные номера записей, где встречается слово "avi" в любом из полей (nic, fname,tth,ext). "ext" это расширение файла, взятое из его имени - fname.
   Далее запускаем поисковый сервис Сфинкса командным файлом start.bat . В дальнейшем после перезагрузки компьютера сервис сам автоматически будет запускаться и всегда будет готов к работе. Не забудьте правильно указать IP (сетевой адрес) вашего компьютера на вкладке "Sphinx" и в файле sphinx.conf, номер порта лучше оставить как есть. Если вы затрудняетесь с определением IP, пишите "127.0.0.1".

   Сожмем описание всей настройки в несколько строк:

 1. Правим "абсолютные" пути  в  sphinx.conf и списке "Индекс по которому будем искать", т.е. заменяем их своими,    указываем правильно сетевой адрес вашего ПК (возможно: 127.0.0.1)
 2. Индексируем базу данных SSearch  ..\bin\index.bat
    (Понятно, что база данных SSearch должна уже существовать, иначе нажимайте кнопку "Подготовить данные!" :)
 3. Устанавливаем sphinx как сервис  ..\bin\inst.bat
     (не забудьте исправить путь к sphinx.conf в inst.bat )
 4. Запускаем поисковый сервис sphinx-а  ..\bin\start.bat

 Все, SSearch готов воспользоваться уникальными возможностями Сфинкса!

 Переходим на вкладку "Поиск файлов"  пишем поисковый запрос и нажимаем кнопку с пиктограммой Сфинкса. Наслаждаемся скоростью и возможностями поиска.

 Через некоторое время "индекс" устареет и его надо будет обновить. Для этого, качайте файл-листы пользователей из хаба (ов). На вкладке "Обновить  списки файлов пользователей" нажимайте  на кнопку "Обновить!". Далее на вкладке "Sphinx" нажимайте кнопку "Подготовить данные!", и наконец в папке .. sphinx-0.9.8.1-win32\bin запускайте командный файл: index-rott.bat . Все, новый индекс готов.

Расскажем подробнее как пользоваться новыми возможностями SSearch.


При выполнении любого запроса сначала идет поиск в индексе Сфинкса, а затем данные о расшаренных файлах извлекаются из БД. Только когда данные извлекутся из БД, на них будут наложены фильтры (тип, размер). Т.е. весь процесс поиска состоит из двух фаз:

А.      Поиск файлов Сфинксом.
Б.      Фильтрация и сортировка полученных файлов.

Поиск файлов Сфинксом (А)

  Рассмотрим  подробнее язык запросов Сфинкса. Краеугольным камнем понимания языка запросов является выбор режима поиска. Возможные варианты находятся в  списке рядом с кнопкой - пиктограммой Сфинкса.

Поиск Сфинксом

1.      <Все слова> - ищутся все файлы, в именах которых обязательно должны присутствовать все слова из запроса.

2.      <Любое слово> - если в  имени файла есть хотя бы одно слово из строки запроса, то такой файл будет найден.

3.      <Как фразу> фрагмент имени файла должен полностью соответствовать всему запросу.

4.      <Как логическое выражение> в этом режиме между словами можно использовать логические операторы: И (&), ИЛИ (|), НЕ (-). Где &,|,- и есть логические операторы. Примеры:

 Оператор И:

 Привет & Америка

Фрагмент результата поиска (далее хэш опускаем, а Ники берем в квадратные скобки для наглядности):

 [ Qwertpo] 486 \Download\Английский\Привет Америка!American English - без акцента (1CD)\HELLO_AMERICA.mds .
 [ Qwertpo] 260 \Download\Английский\Привет Америка!American English - без акцента (1CD)\Привет Америка!American English - без акцента (1CD).txt .
 [ Влад-скаут2] 3208801 \музыка\Медики\Привет Америке.mp3 . 

Оператор ИЛИ:

привет | Hello

Фрагмент результата поиска:

[ !!!imNOTbad!!!] 7873120 \Enigma\ENIGMA\Enigma - 2006 A Posteriori\08 - Hello And Welcome (New Version).mp3 .
[ !!!imNOTbad!!!] 5854829 \Other\popSa\Lionel Richie - Hello.mp3 .
[ !GeorgiySPB!] 3408457 \Audio\Новая папка\080 Ю. Савичева - Привет.mp3 .
[ !GeorgiySPB!] 189233 \Audio\мелодии для телефона (mp3)\Обрезанные\Привет.mp3 .

 и.т.д.

Оператор НЕ
 
комбайн -кухонный

Фрагмент результата поиска:

[ ##ФИЛЬМЫ_ДЛЯ_МОЗГА_3] 3929153 \Опасная информация\10 Опасные песни\Советская колхозная песня\09 - Идут комбайны по стране.mp3 .
[ (INT)weisauge] 36864 \DC++ Downloads\Finans\900 идей частного бизнеса\701-800\Лопата-комбайн.doc .
[ [x]Light] 3239808 \Ibel_Прапор\Музыка\Шаов Тимур (бардовская)\11 Фамильный медальон (1997)\07_Марш комбайнов.MP3 .
[ [x]millitary] 213889208 \Video\How it&apos;s made - Как это делают\s02e08 Из чего это сделано - Комбайн, Спасательная шлюпка, Шоколад.avi .

 

Возможны операторные скобки:

(Владимир -Путин -Высоцкий ) & (город -Москва)


Фрагмент результата поиска:

[ 1sdo] 4735135 \ШАРА\Музыка\Нечаев Владимир\Нечаев Владимир - В энский город.mp3.
[ =CaT=] 45905 \Моя Библиотека\Файлы ibk\ВАСИЛЬЕВ Владимир - Город-призрак.ibk .
[ abracadabra[]] 416740 \Картинки\Города\Цветные фотографии Российской Империи 1905-1915гг\Алтарная сторона Дмитриевского соборa. [Владимир] 1911.jpg .

 

5.      <На языке запросов sphinx-а> В этом режиме применяются как логические операторы, так и специальные.

      Использование логических операторов:

(Как это работает "Сезон 10" ) | (Как это работает "Сезон 9 ")


Оператор поиска фразы:

"школа магии"

 
Оператор близости:

"миги сейбры" ~5

Фрагмент результата поиска:

 [ Sever] 490030 \G__\Беллетристика\Пепеляев Евгений\Евгений Пепеляев. Миги против Сейбров.rtf .

 [ [Frz]ФОФАН] 202328 \DC\Скачал\Книга 2\Библиотека\Пепеляев Евгений\ Миги против Сейбров .zip .

 

Оператор кворума. Он вводит не четкое сравнение между фразой запроса и именем файла. Только те имена файлов будут найдены, в которых количество найденных слов будет не менее чем задано. Пример:

 "Мир прекрасное место" / 3

Фрагмент результата поиска:

 [ Marsik2] 2984 \Книги\Ф\Ферлингетти Лоуренс\Мир - прекрасное место.txt .
 [ [ext]Artemm512] 2984 \Домашняя Библиотека - 20 000 произведений 4000 авторов\Авторы\Ф\Ферлингетти Лоуренс\Мир - прекрасное место.txt .

 
Оператор поиска в конкретном поле - @. По умолчанию поиск идет сразу по всем полям (nic - ник ,tth - хэш, fname - имя файла, ext - расширение файла). Пример поиска только по хэшу:

@tth 2TSOXKKUYS3K5XFXC5WHOUGFCYYDOLXB2EAFUGQ

Поиск сразу по двум полям:

@nic int @fname avi 2009

Фильтрация и сортировка полученных файлов. (Б)


Здесь все просто и очевидно. Фильтрация возможна, как по размеру файла, так и по его типу. Важно понимать, что фильтр накладывается на множество записей БД полученных поиском по индексу Сфинкса, а сам сфинкс выдает вам не бесконечное множество совпадений, а ограниченное множество. См. параметр  "max_matches =10000" в файле sphinx.conf. Вы можете увеличить этот параметр, однако это при больших значениях  теряет смысл т.к. во первых, большой список тяжело воспринять, а во вторых начнутся серьезные задержки в работе SSearch (особенность реализации визуального компонента типа ListBox в Windows).

Советы.

 Хочется сразу предупредить о некоторых особенностях поиска. Положим, вы решили скачать все аудио книги Э. Хемингуэя, доступные в хабах. Пишите в строке запроса:

 Хемингуэй

 Получаете более тысячи ссылок на файлы. Но т.к. каждая книга состоит не из одного, а множества файлов, то для того, что бы понять какие книги расшарены, вам нужно будет просмотреть все эти тысячи ссылок, что не гуд. Что бы так не делать, надо  воспользоваться языком запросов.  Полистали несколько страниц выдачи и увидели, что они забиты ссылками на книгу <По ком звонит колокол>, значит, что бы её пропустить, надо написать в поисковом запросе

Хемингуэй  -("звонит колокол")

и выбрать " Искать как: - Логическое выражение "

   После такого запроса:

Хемингуэй -("Иметь и не иметь") -("звонит колокол") -("Снега Килиманджаро") -("прощай оружие") -("который всегда с тобой")

 Останутся  ссылки на <Старик и море> и др..

Следующий пример: Ищем видео-уроки.Запрос <видео уроки> выдаст множество ссылок на видео-уроки по фотошопу. Значит, что бы их не было в следующей выдаче надо писать:

видео уроки -Photoshop -фотошоп.

 
 Не всегда, то что вы ищите состоит из одного файла (аудио книга например). Иногда лучше скачать сначала файл лист того пользователя, кто расшарил файл и там уже зная путь или имя файла искать нужную папку и качать ее сразу всю. Но обычно, что бы не качать файл-лист пользователя достаточно правильно построить запрос и получить список всех файлов в данной конкретной папке. Например, на запрос "Старик и море" вы получили тысячи ссылок. Видите, что аудио-книга состоит из частей. Выберите понравившегося пользователя и копируйте путь к файлам книги в буфер обмена. Вставляйте его в поле  "Поиск" "\Аудио-книги\Эрнест Хемингуэй. Старик и Море" и нажимайте поиск Сфинксом.
Поиск аодержимого папки

 Сортировку  результата выбирайте по "Имя файла". Что бы в ответ не попадали лишние  магнеты, "режима поиска"  надо выбрать "Как фразу".

Краткий анализ.

SSearch предоставляет вам три различных механизма поиска:

 Простой поиск. (Simple searching т.е. кратко SSearch : ). К его достоинству можно отнести минимальную настройки перед самим поиском. Минимальное количество данных необходимых для поиска. "В пределе" это только сжатые файл-листы пользователей. Имеет не ограниченную масстабируемость. Недостатки тоже очевидны - слишком медленно работает, т.к реализован простым перебором!

Турбо-поиск. Поиск с использованием сторонней персональной поисковой системы. Работает очень быстро, легко интегрируется в ваш сайт. Пример можно посмотреть здесь: http://dc-poisk.no-ip.org:17000/ или здесь: http://dc-poisk.no-ip.org:17000/yar .Но требует хранения огромного числа отдельных файлов на жестком диске, что не очень эффективно, даже с учетом оптимизации по размеру кластера и использованием  сжатых папок. Но самое главное нет бесплатных и открытых поисковых систем с необходимой масштабируемостью. Яндекс тому пример (http://company.yandex.ru/technology/products/Yandex-Server/shareware.xml). И это понятно Яндексу конкуренты не нужны. Хотя, для небольших локальных хабов, это достойное решение проблемы централизованного поиска, способное даже несколько разгрузить сеть провайдера.

 Поиск с использованием Сфинкса самый быстрый и достаточно масштабируемый поиск. Здесь (http://dc-poisk.no-ip.org/) можно воспользоваться его он-лайн версией. Как всегда "за все надо платить". Платой за пользование быстрым поиском Сфинкса будет суммарный размер БД SSearch-а и индекса Сфинкса, который в 14.2  больше размера файл-листов скаченных у пользователей. Т.е. если скаченные сжатые файл-листы занимают 10Гб, то что бы искать по ним с помощью Сфинкса надо выделить на жестком диске 142 Гб. Много? Тогда сюда  ... :)

Заключение.

   Может показаться, что пиринговые сети это "сплошное баловство" - рассадник пиратства и хранитель порно. Отчасти это правда. Но не надо путать инструмент и то, что можно сделать с помощью такого интрумента. Все зависит от вас и нас. Всеобщая разруха  90-ых годов привела к фактической смерти целых институтов гражданского общества. Массово закрывались библиотеки на предприятиях, во дворцах культуры. Те, что не были закрыты, были лишены новых поступлений книг и периодики. Что привело к массовому оттоку читателей.  Телевидение превратилось в инструмент зарабатывания денег (реклама, в середине 90-ых занимала до 30 процентов эфирного времени)  и оболванивания населения (сериалы вместо книг). Даже Интернет в виде WWW только отчасти спасает положение. Наши "акуллы" капитализма смогли протащить через подконтрольных им законодателей, драконовскую редакцию закона об авторском праве, о нынешних поправках к Гражданскому Кодексу, я вообще умолчу. Начались гонения на он-лайновые библиотеки. К сожалению книга в глазах наших властей стала обычным товаром. Надо быть глупцом, что не понимать, что это НЕ ТАК! Книга это прежде всего инструмент для передачи знаний и духовности от одного поколения другому. По этому храните электронные  книги в пиринговых (НАРОДНЫХ) сетях! Мы же постараемся создать такие инструменты, чтобы каждый читатель нашел свою книгу.

Удачи!

 

SSearch.exe - свободно распространяемая программа на условиях GPL. Исходные коды прилагаются. В логотипе SpaceLib использован оригинальный постер ЛЕНГИЗА.


 

Новости Главная

Введение

Программы

Загрузка Карта сайта
Hosted by uCoz