- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Морфология в поисковике - не определяющее звено... использование словаря синонимов и тезауруса при поиске ещё никому не помогало. Это странно и обидно, но это так. Идея вроде хорошая, интуитивная. Просто в реальной обработке текста интуиция часто противоречит жизни. Обработка текстов - штука странная, часто нелепая. В поиске зачастую и морфология мешает.
Вот Гугл принципиально не использует морфологию, ищет только в заданной форме - и ничего, нормально, занял место номер 1.
В свете данных соображений, как вы относитесь к поисковым возможностям Oracle UltraSearch/Text и целесообразности использования RCO for Oracle от Гарант-Парка? Ведь для русского языка Oracle Text реализует базовые поисковые возможности, а все остальное как бы вроде и не нужно? 🙄
ЗЫ: естественно речь не идет о построении глобальной системы поиска - требуется полнотекстовый поиск в рамках корпоративной интранет сети
Поправьте меня, если я не прав, ибо я не специалист в SQL.
Как мне кажется, практически все решения, использующие SQL, изначально являются надстройками над одним оператором SELECT. Т.е. если вы реализуете какие-то дополнительные возможности вроде поиска по всем формам слова или нечеткого поиска, то это выливается в итоге в большое количество SELECT`ов, результаты которых приходится складировать в отдельной базе и потом искать среди них наиболее релевантные. Глобальная система от такого количества запросов к базе просто повесится. Корпоративная искалка может выдержать - только благодаря малому количеству обращений, быстрому доступу через локальную сеть и мощному серверу.
Я не прав?
... выливается ... в большое количество SELECT`ов ...
Серег, это зависит от того, что является ключом. Если сама форма слова - да, много селектов. Если же внедрить крюк поглубже, то можно индексировать основы.
Подробнее об этом могут сами Гаранты рассказать.
Как мне кажется, практически все решения, использующие SQL, изначально являются надстройками над одним оператором SELECT...
Если вдуматься, что делает оператор select, то можно еще больше обобщить и углубить: практически все решения, работающие с множествами и делающие из них выборки, являются разными реализациями оператора SELECT ;)
А по сути вопроса кто-нибудь может что-нибудь сказать?
Ответ по сути примерно такой.
SQL, элементом которого является команда SELECT, не более чем язык
программирования (точнее для ORACLE - процедурное расширение PL/SQL),
описывающий правила доступа к данным.
Удобство использования SQL не имеет НИКАКОГО отношения к эффективности
доступа к данным.
Удобство использование SQL - организационное! Вы в значительной
мере ослабляете зависимость от программистов - т.н. "создателей"
кода, уход которых может поставить под угрозу весь проект.
Удобство использования универсальных баз данных в том, что
можно на одной базе решать разные задачи, например, еще
документооборот, расчет зарплаты и т.п.
А эффективность поиска определяется структурами данных хранения индексов, способом доступа к данным, предварительным разбором запроса.
Не стоит думать, что реализация SQL - выборка данных одинакова у всех
производителей. Более того, у каждого серьезного производителя
существует множество параметров, влияющих на эффективность.
При этом Вы можете регулировать доступ к таблицам - как к стандартным
В+ деревьям, по разного рода индексам (можно регулировать последовательность их применения), можно как к хэш-таблицам,
можно использовать бинарные индексы, можно
сливать воедино таблицы и индексы, можно разбрасывать таблицы/индексы
по разным машинам (в том числе по частям) и т.п.
То есть исполнение одного и того же SELECT может быть РАЗНЫМ
в зависимости от установок других параметров.
И все это достигается всего десятком команд PL/SQL и некоторым
временем на перестройку структуры данных.
Лично мне кажется (это и рынок подтверждает) - ORACLE лучше в том плане, что его можно настроить эффективнее чем другие БД на решение
реальных задач - но требует определенной подготовки.
MS SQL, говорят, лучше для задач, где оптимизация не очень важна,
где быстро и удобно получить результат на "среднем" уровне.
Утверждаю, что стандартными ДОКУМЕНТИРОВАННЫМИ средствами Oracle
МОЖНО в точности повторить алгоритм обработки ЛЮБОГО поисковика.
НО! Oracle является платформой для УНИВЕРСАЛЬНЫХ решений.
Это значит, что ЦЕНА берется за большее количество функций,
включая сопровождение прав пользователей, ведение других баз данных,
возможность легкой ИНТЕГРАЦИИ с базами, которые будут созданы в будущем и т.п.
Поэтому использование ORACLE для задач типа Яндекса или Рамблера
будет стоить больше чем специализированная база на ограниченное число функций - надо ставить больше машин, приобретать лицензию на
паралельную версию и т.д.
Причем за это придется платить! Неформальный закон ценообразования ORACLE - лицензия стоит столько же, сколько железо. А "глобальные"-то поисковики в большинстве УБЫТОЧНЫ - платить нечем!
В силу изложенного ORACLE (например) в глобальных поисковиках не используется, но используется в корпоративных информационных
системах. При этом, конечно, RCO - далеко не единственная
система на ORACLE с поддержкой русского языка (я лично знаю штуки четыре, которые поставляются в достаточно уважаемые организации).
В результате для реального проекта все определяется соотношением между Функциональностью, Деньгами и Временем, а не выбором
языка описания доступа к данным.
С уважением,
bvd
Утверждаю, что стандартными ДОКУМЕНТИРОВАННЫМИ средствами Oracle
МОЖНО в точности повторить алгоритм обработки ЛЮБОГО поисковика.
Сомнительно. Точнее просто не верно. В Оракле реализованы 3-4 базовых алгоритма хранения и обновления индексов. Поисковых систем много и алгоритмов хранения, исполнения запросов, обновления индексов сильно больше четырех.
Только в исполнении и ранжировании запросов поисковыми системами наблюдается такой зоопарк, которые никакими стандартными средствами Оракла не воспроизвести.
Поэтому использование ORACLE для задач типа Яндекса или Рамблера
будет стоить больше чем специализированная база на ограниченное число функций - надо ставить больше машин, приобретать лицензию на
паралельную версию и т.д.
Думаю, что задача Веб-поиска в достаточно широкой постановке невыполнима на Оракле ни за какие деньги.
Ну хорошо, наши 50 компов можно заменить на 200 Оракловых (интересно, бывают такие лицензии? а работать оно вообще будет?). Но что делать с Инктоми или Гуглем? 54 тысяч компьютеров заменить на миллион? :) Боюсь, что это не поможет.
1) Насчет PL/SQL и любого алгоритма.
PL/SQL представляет собой обычный язык программирования.
Написать можно по-разному, и даже если я ошибаюсь
насчет мощи PL/SQL, тогда дело решится вставкой в совсем уж узкое место маленького кусочка на С или Java.
В этом случае, надо говорить точнее, конечно, не "средствами Oracle"
а "на основе средств Oracle".
Что я имею в виду. Например, "кишка" Яндекса может быть задана
стандартным объектом типа IOT (Index Organazed Table). То есть
на физически на диске будет лежать аналогично. Можно повозиться и с
битами, но пусть будут байты (пусть размер базы будет на порядок больше).
ORACLE обеспечивает возможность выборки из базы в оперативку
(например, "таблицы" или "массивы" в памяти), которые можно
там крутить и т.д.
2) Насчет будет ли работать в масштабах Google - честно не знаю.
Чтобы проверить в масштабах Google надо пять-десять миллионов долларов. Чтобы проверить в масштабах Яндекса - где-то миллион.
Проблема не в количестве документов, нужны настройки пулов
запросов, в конце концов, разнесение на разные сервера.
Кстати, давно мне уже не удается исполить запрос на Google.com
- все меня перекидывает на Google.ru. Поэтому насчет МНОГИХ тысяч серверов непонятно (в том плане сколько серверов используются
для обработки одного запроса).
3) Я просто хочу сказать, что как-то укрепилась точка зрения,
что раз SQL - то B+ деревья, откуда можно оценить предельную скорость.
На самом деле года с 1996 (может и раньше - не знаю),
по крайней мере ORACLE (наверно и остальные) предоставляет
в распоряжение разработчика гораздо более широкий набор
объектов, доступ к которым пишется на вполне качественном
уровне (низкоуровневом) и совершенствуется от года в год.
Можно, конечно, верить, что русские программисты круче
американских, китайских или индийских, но это неочевидно.
В этом случае, надо говорить точнее, конечно, не "средствами Oracle"
а "на основе средств Oracle".
Что я имею в виду. Например, "кишка" Яндекса может быть задана
стандартным объектом типа IOT (Index Organazed Table). То есть
на физически на диске будет лежать аналогично.
Понял вашу мысль. В Оракле можно дописывать расширения на C. Согласен. Только объем дописывания будет равен в точности текущему коду Яндекса.
В сущности предлагается заменить файловую систему на хранение в Оракле. Только зачем?
Если очень хочется не писать эти пять системных вызвовов, имеет смысл посмотреть на более низкоуровненые БД. Беркли, например.
Какой-то аспирант Гарсиа-Молины на позапрошлом WWW докладывал Web-поиск с хранением в Беркли. (я где-то в этом форуме его уже упоминал)
Там оверхед на скорости поиска был всего-то вдвое. Потрясающий результат, позволяющий например Гуглю использовать лишь на 54000 компьютеров больше чем сейчас :)
Чтобы проверить в масштабах Google надо пять-десять миллионов долларов. Чтобы проверить в масштабах Яндекса - где-то миллион.[/Q]
Оценки очень заниженные.
1сервер = $2.5K.
1000000 = 250 миллионов.
- все меня перекидывает на Google.ru. [/Q]
А при чем тут база? Поиск делается там же. Более того, с того же самого IP.
Ни у одной всемирной искалки нет локальных копий базы для региональных партнеров. Ну альты, ни у лайкоса. И никогда не было. Подробонее см webmasterworld, searchenginewatch.
Практический совет. У вас просто кука "русская" стоит. Перейдите 1 раз по ссылке "Gooogle in English". Гугль вам сотрет "русский флаг" в куке, и вас перестанет перебрасывать.
по крайней мере ORACLE (наверно и остальные) предоставляет
в распоряжение разработчика гораздо более широкий набор
объектов, доступ к которым пишется на вполне качественном
уровне (низкоуровневом) и совершенствуется от года в год.
Очень уважаю Оракл. Но поисковую систему даже middle-range на нем делать не стану. И никому не посоветую.
Барков (удмсерч, который теперь многосерч) мучился, мучился с SQL-машинками для ПС. И вот уже два года как они на это забили и все переписали ручками. Иностранцев в команде многосерча больше чем русских.
американских, китайских или индийских, но это неочевидно.
При чем тут национальность? Я подобных вещей никогда не утверждал.
Зайдите на searchtools.com и посмотрите как широко представлены страны разработчиков поисковых систем. Сколько там систем на баз "СТАНДАРТНЫХ SQL-МАШИНОК". Боюсь, что меньше 5 процентов. И от страны это никак не зависит.
Если вас не убеждает статистика коммерческих искалок, загляните не sourceforge.net в раздел поисковых систем. Сколько там проектов ПС на основе SQL? По-моему вообще нет.
...
Написать можно по-разному, и даже если я ошибаюсь
насчет мощи PL/SQL, тогда дело решится вставкой в совсем уж узкое место маленького кусочка на С или Java.
Уважаемый bvd, эта Ваша фраза свидетельствует о том, что Вы не вполне разбираетесь в проблематике. О каких "фрагментах на C" или, тем более, на Java, может идти речь, если ключевые по производительности места "самописного", т. е. полностью ручками написанного поисковика, оптимизируются очень глубоко, с борьбой за каждую лишнюю, но часто исполняющуюся инструкцию процессора?
... по крайней мере ORACLE (наверно и остальные) предоставляет
в распоряжение разработчика гораздо более широкий набор
объектов, доступ к которым пишется на вполне качественном
уровне (низкоуровневом) и совершенствуется от года в год.
Да, согласен, и спорить даже не буду. Оракл развивается, имеет мощные, разнообразные алгоритмы. Однако даже на ОЧЕНЬ хорошем и мощном тракторе "Катерпиллер" вы никогда не выиграете не то что Гран При, а даже уличную гонку с "восьмерками". Обратное утверждение также справедливо.
Кроме того, как известно, можно построить машину, которая будет ездить, плавать и летать. Но она будет ПЛОХО ездить, ПЛОХО плавать и ПЛОХО летать :)
Можно, конечно, верить, что русские программисты круче
американских, китайских или индийских, но это неочевидно.
Можно. Однако причем тут это? Или Вы хотите сказать, что американские, китайские и индийские программисты реализуют любые задачи исключительно средствами больших СУБД, в том числе Оракл?
Уважаемый bvd, эта Ваша фраза свидетельствует о том, что Вы не вполне разбираетесь в проблематике. О каких "фрагментах на C" или, тем более, на Java, может идти речь, если ключевые по производительности места "самописного", т. е. полностью ручками написанного поисковика, оптимизируются очень глубоко, с борьбой за каждую лишнюю, но часто исполняющуюся инструкцию процессора?
Чуть-что, сразу переход на личности.
Да, в гимназиях мы не обучались...
Насчет "очень глубоко".
Да, мы работаем с Oracle. В нашей
практике несколько раз возникала проблема ускорения исполнения запросов, и я ЛИЧНО ставил нашим Oracle программистам вопрос:
"либо вы в сжатый срок находите решение задачи под Oracle,
либо пишем на С или чем нибудь подобном".
Так вот, ВСЕГДА удавалось решить проблему средствами Oracle.
Возможно, конечно, я плохой алгоритмист (в смысле у меня заниженные требования к тому, что значит "решить проблему").
Но попробуйте допустить (на секунду) такие допущения:
- программисты Oracle (не самые глупые ребята) оптимизировали
уже доступ к своим объектам (таблицам, индексам) и т.п,
то есть "оптимизировали очень глубоко, с борьбой за каждую лишнюю,
но часто исполняющуюся инструкцию процессора";
- Вы как программист на Oracle можете из этих ЭФФЕКТИВНЫХ
кубиков складывать то, что Вам надо.
Это не значит, что это легче чем программировать на С,
так как трудности перетекают в проектирование адекватных
структур данных, и в само умение расставить "хинты",
опять же в денежки за техподдержку.
Но, повторяюсь, приличный выигрыш - организационный.
Есть рынок программистов на Oracle, логика программ весьма прозрачна,
можно воспользоваться помощью высококвалифицированных экспертов
по всему миру (которым не надо будет много объяснять).
Зайдите на searchtools.com и посмотрите как широко представлены страны разработчиков поисковых систем. Сколько там систем на баз "СТАНДАРТНЫХ SQL-МАШИНОК". Боюсь, что меньше 5 процентов. И от страны это никак не зависит.
Если вас не убеждает статистика коммерческих искалок, загляните не sourceforge.net в раздел поисковых систем. Сколько там проектов ПС на основе SQL? По-моему вообще нет.
Тут слишком много вопросов. На все ответить трудно.
Что называется "коммерческой" искалкой?
Для меня признаком "коммерческой" является количество продаж/установок
и обший объем продаж.
Здесь искренне желаю Яндексу, Рамблеру и другим достичь уровня оборота и прибылей Oracle.
Мы говорим об одном и том же, но по разному. Вас интересует только
Интернет, меня - корпоративный сектор, а также то, что может быть названо как "тематический Интернет" (часть Интернета под заказ,
с полной, а невыборочной выкачкой страниц, с вычищенным без дублей, спама и т.п. содержанием).
Эти коллекции достаточно большие, но, естественно, меньше чем Интернет.
А нужен ли, с точки зрения отдачи (а не только с точки зрения социальной функции), весь Интернет, если "первичных" страниц там
гораздо меньше общего числа (перепевки, дешевые "размышлизмы" и т.п.)
Стратификация Итернета по темам, кстати, на мой взгляд должно быть более интересно "оптимизаторам" чем раскрутка в общих поисковиках.
Зачем же "торговать электрокабель" на Яндексе или Рамблере -
не лучше ли стараться пробиться в топ-листы специализированных
площадок, деньги - на порядок больше (с бюджетом в 150 уе не подходить), а спама на порядок будет меньше - там банят сразу и навсегда.
Очень уважаю Оракл. Но поисковую систему даже middle-range на нем делать не стану. И никому не посоветую
Вас интересует только поисковик. Наших клиентов
обычно интересует поисковик, интегрированный с чем-то иным.
Oracle, как наверное и любая современная мощная SQL база
(наиболее, говорят, сильна DB2) подходит и, главное,
УСТРАИВАЕТ наших клиентов
Поэтому я, наоборот, посоветую. Особенно для начинающих.
Для того чтобы выйти (или попытаться выйти) на что-то типа
самоокупаемости - выйдет дешевле.
А то начнет человек что-то делать свое (проходить длинный путь проб и ошибок), а потом ему Илья и Андрей так же уверено заявят,
что "это все придумал Черчиль в 18м году". То есть задешево
сваять свое оригинальное и хорошее не получится.
С уважением,
bvd