Система поиска по ON-LINE складам

Статус
В этой теме нельзя размещать новые ответы.

smoto

Guest
я жду помощи по конкретному вопросу
зачем цепляться? я мог и иначе сформулировать задачу
но сделал это именно так как есть

по всей видимости на пхп реализовать это нелегко
потому что нет многопотчных режимов
 

Marquis

Новичок
smoto
короче, ты не понимаеш смысла сего функционала, и как это вообще должно работать. Тебе предложили _правильные_ пути решения, тыже уцепился за свой вариант. Делай, кто тебе мешает?
 

smoto

Guest
боюсь нет альтернатив
я xml не знаю - да и причём он тут
это ж просто формат передаваемых данных

-~{}~ 22.10.06 21:59:

Автор оригинала: kseen
Насколько я знаю, распаралеливание нельзя сделать средствами PHP. Можно например сделать перл скриптик с его fork'ом в каждом потомке которого запускать php-скриптик который как раз будет ломиться на сервер и извлекать оттуда данные.
а вот это кстати, мысля неплохая
спасибо
 

kseen

Новичок
Автор оригинала: smoto
я в начале темы уже кажется это обговорил

представь себе фирм так 100 со своими прайсами тысяч по 100
и если каждый будет предлагать мне свои нарезки - то это получиться какая-то порнография

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

а теперь ещё раз прошу посмотреть наверх!!! они САМИ предварительно регистрируются и дают добровольно адреса к своим скриптам (удаленным скриптам)
а не сам поисковик начинает лазять по чужим прайсам


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

hermit_refined

Отшельник
smoto
Если фирмы регистрируются в поисковиках, значит они отдают этим поисковикам данные в xml. Следовательно, могут в xml отдавать и тебе.

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

Bully

Новичок
"Распараллеливание" в вашем случае можно сделать с помощью ticks . А для запроса результата выполнения скрипта используйте curl.
 

Marquis

Новичок
Bully
"Распараллеливание" в вашем случае можно сделать с помощью ticks . А для запроса результата выполнения скрипта используйте curl.
"Распараллеливание" ему не нужно, просто он пока этого не понял.
 

sunchess

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

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

3. НО есть большо-о-ое НО - это яндекс маркет где такое давно реализовано.

Так, что можете попробовать составить конкуренцию яндексу :)
 

Dreammaker

***=Ф=***
Конкуренцию яндекс-маркету пробуют составлять и будут пробовать, и думаю составят.

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

Как вариант, клиентскую часть можно сделать аля AJAX.
Странице передаётся массив идентификаторов партнёров и для каждого идентификатора с неё дёргается скрипт, который получает от страниц поиска у партнёров XML и возвращает на страницу клиента, на которой строится выдача.

Возможно так и сделано на ефайнде не особо вникал.

Но боюсь топикстартеру сия система будет не по силам :) Ему ещё нужно будет разобраться что такое XML, а потом возникнет вопрос что такое AJAX :)
 

smoto

Guest
Да-да, вы все правильно поняли что мне нужно.
В режиме реального времени опрашивается каждый склад на введеный запрос в моём поисковике. И принцип работы СИИХ поисковиков именно такой (тот же ефайнд)
Пользователи-участники регистрируются в этом поисковике и дают пути к своим поисковым скриптикам. XML? ну пусть xml, я в нём уже разобрался - будет форматом передаваемых данных.
Кто работал с ефайнд - там тоже в xml.

Дело-то не в этом. А в том что в скрипте моего поиска я должен запустить удаленные скрипты и ждать от них ответа.

И если какой-нибудь из них "стормозит" или будет недоступен в данный момент, то ОБЩИЙ ПОИСК затянется не на одну минуту!!! Да даже если все склады доступны - среднее время ответа от них может достигать 1 секунды. Помножьте на 100.
Пользователь поисковика просто не станет столько ждать.

Поэтому как мне кажется - единственным возможным вариантом реализовать поискових с таким вот принципом действия и остаётся - параллельно опрашивать каждый склад.

если нет на php я готов сделать на том же perl или на c++
но я думаю это уже не сюда да?

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

Dreammaker

***=Ф=***
Почитайте мой пост выше внимательней.

Можно перенести ранжирование и "распаралеливание" на сторону клиента. Возможно добавить кеширование для определённых запросов..
 

smoto

Guest
Автор оригинала: Dreammaker
Почитайте мой пост выше внимательней.

Можно перенести ранжирование и "распаралеливание" на сторону клиента. Возможно добавить кеширование для определённых запросов..
честно сказать не понял я как это? :(

статейки по AJAX найти сумею если что...

кстати а на MACROMEDIA FLASH как-нибудь можно?
помню я когда-то делал обмен данными между Flash и php
 

kseen

Новичок
Автор оригинала: smoto
И если какой-нибудь из них "стормозит" или будет недоступен в данный момент, то ОБЩИЙ ПОИСК затянется не на одну минуту!!! Да даже если все склады доступны - среднее время ответа от них может достигать 1 секунды. Помножьте на 100.
Пользователь поисковика просто не станет столько ждать.
Ещё возможно чтобы пользователь не скучал выдавать ему кусками: то есть, например, получили данные от одного скрипта выводим буфер вывода, далее таким же образом обрабатываем последующие скрипты. Это конечно не решает проблему что если один скрипт протормозит, пользователь будет ждать, но все таки уменьшит вероятность того что пользователь окончательно закроет страницу
 

Dreammaker

***=Ф=***
Почитайте об AJAX в сети.

Со страницы Вы можете делать запросы для каждого онлайн склада отдельно подгружая данные с помощью AJAX или похожей технологии, подразумевающей динамическую подгрузку данных, например, с помощью библиотеки JSHttpRequest Котерова.

То есть, Вы запрашиваете в javasripte циклом скрипт например. partner.php?id=N

где id номер партнёра, что быстрее подгрузилось, то и выводится на страницу. Остальные по мере поступления. Можно и дополнительно формировать (ранжировать) выдачу по логике заложенной в javascript-коде.

При запросе скрипа, partner.php проверять если не прошло ещё 60 минут для запроса, например, "4n001", то не запрашивать страницу поиска партнёра, а отдавать на страницу данные из кеша.
 

hermit_refined

Отшельник
Imho, действительно on-line поиск - порочная идея. Ранжировать приходится по скорости ответа, а не по релевантности содержимого, бестолково выходит.

А так - на php (как и на C) можно вполне гибко сделать с socket_create() + socket_select() + ...
 

smoto

Guest
кстати говоря на флэше даю подгрузку данных из 3 пхп скриптов с циклами от 1 до 1000000

и ... задержка открытия первого не влияет на открытие второго и третьего и т.д.!!!
т.е. многопоточный режим)))

я уже начинаю соображать что надо делать на флэше
 

Dreammaker

***=Ф=***
Лучше соображать, почему это не нужно делать на флеше.. Ну да ладно, каждый сам себе выбирает технологию..
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху