Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Всё о Direct Connect _ Алгоритм работы поиска в DC

Автор: bestnokia 11.6.2009, 10:29

Добрый день.

Интересует вопрос по работе поиска. Чему он отдаёт предпочтение? Что для него является предпочтительным?
Пример: имеется 10 совпадений файла (файл присутствует у 10 пользователей), кто из пользователей оказывается в самом верху поиска, кому отдаётся предпочтение?

Автор: Serx 11.6.2009, 11:48

думаю результаты выдаются в алфавитном порядке

Автор: bestnokia 11.6.2009, 12:03

Цитата(Serx @ 11.6.2009, 10:48) *
думаю результаты выдаются в алфавитном порядке

Нет, тут другой принцип.

Автор: Nickolya 11.6.2009, 12:17

Скорее просто по результату ответа на поиск, т.е. получен первый ответ на поиск - он и становится первым, и так далее, а дальше уже работает сортировка. Но это лишь догадки, надо экспериментировать, если хотите опытным путем, но пока не вскроете исходники точно ничего сказать нельзя будет big_smile.gif

Автор: bestnokia 11.6.2009, 12:21

Цитата(Nickolya @ 11.6.2009, 11:17) *
Скорее просто по результату ответа на поиск, т.е. получен первый ответ на поиск - он и становится первым, и так далее, а дальше уже работает сортировка. Но это лишь догадки, надо экспериментировать, если хотите опытным путем, но пока не вскроете исходники точно ничего сказать нельзя будет big_smile.gif

А от чего зависит ответ на поиск, от задержек, и как его уменьшить?

Автор: Nickolya 11.6.2009, 12:39

От канала скорее всего и от компа где стоит клиент, вот смотри: клиент посылает хабу запрос на поиск, он его рассылает пользователям. В варианте актива, результаты идут напрямую, т.е. сразу от клиента к клиенту, в пассиве клиент что получил запрос отправляет ответ хабу, тот уже пересылает ответ тебе. На все это нужно время + время обработки запроса поиска по базе клиента, который получил запрос.
Уменьшить - всем поставить восьмиядерники, оптоволокно и крутейшее оборудование для связи, но это конечно шутка. big_smile.gif

Что ты хочешь сделать? Свои результаты первыми или что?!

Автор: bestnokia 11.6.2009, 12:54

Да, я хочу сделать свои результаты первыми. Может есть какие-нибудь способы и методы?

Автор: Nickolya 11.6.2009, 13:23

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

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

Автор: bestnokia 11.6.2009, 15:12

Цитата(Nickolya @ 11.6.2009, 12:23) *
По срабатыванию api функции поиска (SeachArrival) тут же высылать свои результаты, думаю только так. Не думаю что тебе это будет кто-то делать (я бы не стал, это во-первых искажение результатов поиска, во-вторых - никто не знает что ты туда хочешь, если рекламу, то она уже всех достала, и так где только можно), но на форуме есть как описание функций, так и описание протокола, плюс ты смотришь скрипты что работают с поиском, тут тоже такие есть! Так что сделать это даже новичку будет не трудно, правда времени на это понадобится побольше.

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

Я совсем не хочу "спамить". Речь идёт о том как оказаться вверху списка по совпадениям. То есть файл у 10 пользователей, а я на первых позициях. Просто изучаю вопросы поисковой оптимизации в DC, если можно так выразиться.
Цитата(Nickolya @ 11.6.2009, 12:23) *
По срабатыванию api функции поиска (SeachArrival) тут же высылать свои результаты, думаю только так.

Это необходимо вносить изменения на хабе или же с моей стороны?
Цитата(Nickolya @ 11.6.2009, 12:23) *
Так что сделать это даже новичку будет не трудно, правда времени на это понадобится побольше.

Можно написать скрипт который будет отображать меня на первых позициях?

Автор: Setuper 11.6.2009, 17:37

1) Сортировка источников одного файла идет по мере поступления результатов поиска. Это наиболее оптимальный вариант, так как клиент просто дописывает в конец вновь поступившие источники.
2) Сортировку по разным файлам выбирает сам пользователь. Обычно, по умолчанию, установлена сортировка по количеству источников.
3) Каждый клиент отсылает максимум 5 результатов поиска для пассивных пользователей и 10 для активных.
4) Результаты активного поиска передаются непосредственно между клиентами (без участия хаба). Результаты пассивного поиска проходят через посредника, в роли которого выступает хаб. Хаб, в свою очередь, дабы снять нагрузку по пересылке пользователям этих данных, может ограничить количество результатов поиска. Ограничение результатов пассивного поиска - это значительная оптимизация работы хаба. Например, у меня в настройках хаба установлено - возвращать пользователю при пассивном поиске всего 3 результата, то есть я придерживаюсь простой логике: хочешь хороший поиск - юзай активный режим. Те, кто вынуждены находиться в пассиве, ограничены в возможностях поиска, однако таких меньшинство, и для них действую правила: пиши запрос конкретнее, дабы он попал в 3 результата big_smile.gif

Автор: bestnokia 11.6.2009, 17:49

Цитата(Setuper @ 11.6.2009, 16:37) *
1) Сортировка источников одного файла идет по мере поступления результатов поиска. Это наиболее оптимальный вариант, так как клиент просто дописывает в конец вновь поступившие источники.

Вопрос: как уменьшить время отправки результата поиска и следовательно быть на первых местах среди совпадений?

Автор: Setuper 11.6.2009, 17:52

Самый простейший способ - это быть соседом, с тем, кто ищет big_smile1.gif
И то это не всегда 100% случай, так как результаты активного поиска поступают через UDP протокол, в следствии чего пакеты могут потеряться и не дойти до адресата.

Автор: bestnokia 11.6.2009, 19:06

Тема актуальна. Высказывайте свои предложения.

Автор: Setuper 11.6.2009, 19:31

Чем же она актуальна?
Какая разница какой ты в списке. Мне лично по барабану big_smile.gif

Автор: bestnokia 12.6.2009, 13:02

Цитата(Setuper @ 11.6.2009, 18:31) *
Чем же она актуальна?
Какая разница какой ты в списке. Мне лично по барабану big_smile.gif

Ок, а если тебе платят за исходящий трафик, то тоже не актуально?

Автор: Setuper 12.6.2009, 13:13

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

Автор: bestnokia 12.6.2009, 15:47

Цитата(Setuper @ 12.6.2009, 12:13) *
Так на каком бы ты месте не был, если у тебя есть файл, то с тебя будут скачивать, так как практически во всех современных клиентах включена мультискачка, а пользователи стараются ставить именно такие клиенты, для того, чтобы побыстрее скачивать файлы. Поэтому расположение в списке не имеет значения.

А количество источников при мультискачивании разве неограниченно? Если файл находится у 50 пользователей, разве он будет со всех скачиваться?

Автор: bestnokia 15.6.2009, 11:48

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

Автор: ustas 15.6.2009, 12:27

ответ уже дал Setuper.
Если тебе нужно отключить скачку с внешки, юзай скрипт, ограничивающий такие скачки

Автор: Delion 22.6.2009, 21:54

Цитата
А количество источников при мультискачивании разве неограниченно?

Зависит от клиента.