Создание собственного поискового сервиса

123
T7
На сайте с 19.09.2018
Offline
63
#11
alexrealty #:
Не нужно ранжирование.
А как? Ну вот, пример. Ищете "Прибор Н". На 500 из 1500 есть раздел новости, а в нем проскочила такая - "Везли прибор Н заказчику, по дороге пропили", в разных вариантах. Резонансно было. В результате поиска 500 документов. Как отсортировать результаты?
T7
На сайте с 19.09.2018
Offline
63
#12
ArbNet #:
агрегатор просматривает сайты записывает ключевики и страницы у себя в базу.

В результате

1500 сайтов × 50000 документов =75000000 / 2 сек / 86400 сек = 434,028 суток  чтобы только все забрать.

ArbNet
На сайте с 27.10.2019
Offline
124
#13
alexrealty #:
1. Найти документацию на нужный прибор
2. Найти обзор на нужное оборудование
3. Выяснить, у кого из дилеров тот или иной прибор есть в наличии

И т.д. Не нужно ранжирование. Просто нужно, чтобы поиск вёлся по группе сайтов, а не по всей сети. Всё.

Так это и есть ранжирование. А чтобы находилась именно необходимая информация по пунктам 1-3 нужен алгоритм отбора нужных сайтов и уже по ним делать более точный поиск.

Даже в существующих поисковиках нет такого умного алгоритма, поэтому если и подключите сервис, то он не будет выдавать актуальной информации это будет 50/50 может повезёт, а может и нет, и нужно ниже смотреть по страницам, но не факт, что поисковик смог правильно отранжировать, определить какая информация может подойти под данный запрос и нужный сайт с информацией окажется ниже по страницам результата поиска.

Обсуждение разработки на моём фреймворке https://discord.gg/23N4s9x2kp
ArbNet
На сайте с 27.10.2019
Offline
124
#14
timo-71 #:

В результате

1500 сайтов × 50000 документов =75000000 / 2 сек / 86400 сек = 434,028 суток  чтобы только все забрать.

Нет. Мой алгоритм это сделает за несколько часов, а потом только корректировка.

ЗЫ. Ладно, всё равно это ещё не скоро появится. Продумать то продумал, но на реализацию нужно время, а я занимаюсь ещё и другими проектами.

F0
На сайте с 24.10.2013
Offline
74
#15
dataparksearch.org вам подойдёт. Он, правда, имеет подзаброшенный вид и сейчас практически не развивается, но то, что есть нормально работает и автор в гугл-группе отвечает.
Aisamiery
На сайте с 12.04.2015
Offline
293
#16
ArbNet #:
Использование сторонних сервисов это не собственная поисковая система. Обрушение фейсбука вам урока не преподало значит..

Из 3х предложенных вариантов, только один saas, остальные self-hosted. Да и падают все, я много раз видел уже как в наших ДЦ падает роутер, обрывают кабеля трактором и прочие прелести, от падений не застрахованы даже такие гиганты как фейсбук и амазон, что уж говорить про какие то частные решения.

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
Aisamiery
На сайте с 12.04.2015
Offline
293
#17
timo-71 #:

В результате

1500 сайтов × 50000 документов =75000000 / 2 сек / 86400 сек = 434,028 суток  чтобы только все забрать.

Там тяжелый случай =)) у него алгоритм в нарушение всех законов физики обработает за несколько часов =))

T7
На сайте с 19.09.2018
Offline
63
#18
Aisamiery #:
Там тяжелый случай

Я не стал разубеждать. Тут еще из расчета, что 2 ответа ответа донора (+ сеть) в сек.

А для среднестатистических сайтов с обвесом (хиты/похожие/с этим), результат скорее ближе к 1с будет. Если усреднить.

Ну вот, что бы не голословно (5 мин на коленке)

from time import time #, sleep
import requests
from multiprocessing.dummy import Pool as ThreadPool


links = [
        'https://******', 'https://******',
'https://******', 'https://******',
'https://******',
    ]

HEADERS = {
    'accept':'*/*',
    'user-agent':'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
    }

parser_output = []

def parser(link: str):
    t0 = time()
    request = requests.get(link, headers=HEADERS, timeout=5)
    if request.status_code == 200:
        parser_output.append( (link, (time()-t0)*1000) )


_t0 = time()
pool = ThreadPool(20)
pool.map(parser, links)

print('All time:', (time()-_t0)*1000)

times = [s[1] for s in  parser_output]
_s = sum(times)
_a = _s / len(links)
print('Response time: ',
      times,
      '\nSum Response time: ',  _s,
      '\nAverage Response time: ',  _a,
     )


A
На сайте с 18.03.2015
Offline
51
#19
timo-71 #:
А как? Ну вот, пример. Ищете "Прибор Н". На 500 из 1500 есть раздел новости, а в нем проскочила такая - "Везли прибор Н заказчику, по дороге пропили", в разных вариантах. Резонансно было. В результате поиска 500 документов. Как отсортировать результаты?

Поясняю. В список включаются сайты производителей, сайты дилеров и дистрибьюторов, сайты сервисных организаций, сайты специализированных изданий, сайты выставок и конференций, тендерные и конкурсные площадки и профессиональные сообщества. Всё. Никаких "украли-пропили" там не будет. Могут быть отзывы о работе, могут быть вопросы/ответы, особенности запуска, эксплуатации и ремонта. Жёлтого там не будет. Оборудование узкоспецифическое, если по одной модели будет 5 результатов, будет хорошо. Именно для этого и нужен поиск, чтобы отсечь мусорные материалы. И, по возможности, добиться того, чтобы сайты проиндексировались по максимуму.  В своё время был такой сервис у Ашманова. Я на его базе сделал для себя поисковик по сайтам, на которых выкладывалась музыка для скачивания. Так там можно было даже управлять разделами, которые должны были индексироваться. Например, я мог указать разделы джаз, классика и электроника, игнорируя попсу, диско, хип-хоп и т.д.  Но потом этот сервис перестал поддерживаться. Вот я и подумал, что, может быть, кто-то создал что-то подобное для себя.

A
На сайте с 18.03.2015
Offline
51
#20
ArbNet #:

Так это и есть ранжирование. А чтобы находилась именно необходимая информация по пунктам 1-3 нужен алгоритм отбора нужных сайтов и уже по ним делать более точный поиск.

Даже в существующих поисковиках нет такого умного алгоритма, поэтому если и подключите сервис, то он не будет выдавать актуальной информации это будет 50/50 может повезёт, а может и нет, и нужно ниже смотреть по страницам, но не факт, что поисковик смог правильно отранжировать, определить какая информация может подойти под данный запрос и нужный сайт с информацией окажется ниже по страницам результата поиска.

Никакого автоотбора сайтов. Все сайты отбираются вручную - маркетологами, закупщиками, продажниками и службой сервиса. Я модерирую и принимаю решение - добавлять сайт в поиск или нет. Поверьте, что не будет 100500 запросов по конкретной модели, скажем жидкостного хроматографа конкретного производителя. И в каком именно порядке будут выданы результаты, поверьте, не суть важно. По крайней мере, в обозримом будущем.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий