Это относительно легко делается на любой платформе, если не ходить дальше УВ2. Самое смешное, что качество выдачи получается вполне достойное для большинства не микро НЧ запросов. Так в свое время начинали ask и yahoo.
И если честно, меня намного больше озадачивает вопрос не "как искать" (это при честном подходе вполне реализуемо с большими или меньшими затратами), а "как быстро индексировать".---------- Добавлено 28.04.2014 в 12:40 ----------
Уверен, что про macro assembler знаете. Просто там подход не столько ООП (который не очень люблю), а ПОП (который не жалуют современные программисты). Хотя, выбор между asm и С под *NIX не повод для спора, а скорее религия (ядро того же linux на C написано).
На 300% согласен, потому как сразу огребаются все "прелести " VM и ее GC.
Поэтому и мечтаю найти людей с одновременным знанием Java и C.
Что бы нормально писать что-то реально быстродействующее по *NIX нужен C (в идеале - asm).---------- Добавлено 28.04.2014 в 11:07 ----------
Мне стыдно за Вашу учительницу русского языка.
На самом деле не только Яндекс, но и Twitter, и Facebook...---------- Добавлено 26.04.2014 в 00:05 ----------
Извините, не сразу заметил вопрос.
Проблем там на самом деле две:
1. Технология апдейта индекса.
2. Скорость обновления информации (переиндексация).
Проблема индекса.
Идеологически можно строить сам поисковый движок двумя путями:
1. Получил bulk-апдейт от индексатора и веcь индекс переранжировал, т.е. посчитал score каждого документа после апдейта (Yandex, Sphinx).
2. Получил i-ый документ, добавил его в индекс, а при запросе score новых документов считается "на лету" (Google, Lucene (Elasticsearch, Solr)).
Понятно, что второй путь продуктивнее. Однако, те, кто шли первым путем, сделали некоторые "костыли" (бысторобот в Яндекс, rt-index Sphinx) и проблема если не исчезла, то стала менее заметна.
Проблема краулинга.
Значительно затратнее задача краулинга. Тут все упирается в скорость канала и скорость индексатора (web-crawler).
Если кто помнит, раньше на http://tools.promosite.ru/ был параметр "скорость переиндексации Рунета Яндексом" (примерно 3 месяца). Вот ведь где "собака порылась", вспоминая М.С.!
Собственно, задача скорости апдейтов при поиске в web утыкается именно в краулинг, а вовсе не в апдейты поисковой базы.---------- Добавлено 26.04.2014 в 00:28 ----------Все-таки, всех, интересующихся поисковыми технологиями, приглашаю в соседний раздел - /ru/forum/848127
Ну если совсем несложная задача, то для ru_en:
"а,без,более,бы,был,была,были,было,быть,в,вам,вас,весь,во,вот,все,всего,всех,вы,где,да,даже,для,до,его,ее,если,есть,еще,же,за,здесь,и,из,или,им,их,к,как,ко,когда,кто,ли,либо,мне,может,мы,на,надо,наш,не,него,нее,нет,ни,них,но,ну,о,об,однако,он,она,они,оно,от,очень,по,под,при,с,со,так,также,такой,там,те,тем,то,того,тоже,той,только,том,ты,у,уже,хотя,чего,чей,чем,что,чтобы,чье,чья,эта,эти,это,я,a,an,and,are,as,at,be,but,by,for,if,in,into,is,it,no,not,of,on,or,such,that,the,their,then,there,these,they,this,to,was,will,with"
Adrian2012, Ей Богу, нос утерли! Google слил (допингвинился).
http://yandex.ua/yandsearch?text=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8F%D0%B5%D0%BC%D0%BE%D0%B5%20%D1%80%D0%B0%D0%B4%D0%B8%D0%BE&lr=143
https://www.google.com.ua/#q=программно+определяемое+радио
У меня просто привычка на английском такие вещи искать.
PS: Кстати, можно сделать "предположение", что там, где нет жестких коммерческих интересов, не так уж все и плохо.
Попробуйте сравнить информационный запрос (Обещаю, взял первый, что на ум пришел).
http://yandex.ua/yandsearch?lr=143&oprnd=6032343307&text=sdr+radio
https://www.google.com.ua/#q=sdr+radio
dlyanachalas, хоть и трудно мне понять почему Вы все время при технической полемике пытаетесь перейти на личности, тем не менее, есть предложение перенести это обсуждение в профильный раздел - /ru/forum/optimization-practices/search-technologies , если оно и вправду кому-то интересно.---------- Добавлено 25.04.2014 в 21:50 ----------
В развитии любого монопольного бизнеса наступает момент, когда закон не писан, и начинается жизнь по понятиям, а там, как известно, "курочка по зернышку - весь двор сами знаете в чем".
Об этом еще старик Маркс писал, т.е. про 300% и любое преступление.---------- Добавлено 25.04.2014 в 21:54 ----------
Это очень мягко. Намедни один очень влиятельный человек (не прямо, но все же) сказал, что это кучка ЦРУ-шников, а nasdaq очень резво отреагировал на его слова. Не подумайте, что это и мое мнение тоже.
Я ни в коей степени не верю, что мой личный опыт будет для Вас авторитетен, поэтому, могу предложить почитать как mail.ru делали свой поиск - http://habrahabr.ru/company/mailru/blog/149498/
Что касается сжатия индекса, то оно не спасает от slow query. Пока единственное, что помогает, это множественная репликация шардов индекса и ограничение количество документов на i-том сервере поискового кластера.
Элементарно.
Колво страниц в индексе:
.ru 1148 млн. http://yandex.ru/yandsearch?text=*.ru&lr=213
.рф 218 млн. http://yandex.ru/yandsearch?text=*.%D1%80%D1%84&lr=213
.su 116 млн. http://yandex.ru/yandsearch?text=*.su&lr=213
.ua 323 млн. http://yandex.ru/yandsearch?text=*.ua&lr=213
.by 1331 млн. http://yandex.ru/yandsearch?text=*.by&lr=213
Зоны .com, .info, .org, .net для старта кинем...
Итого: 3136 млн. документов.
Из опыта, средний сервер стоимостью 700$ способен отранжировать за приемлемое время (менее 0,5 сек.) около 2-3 млн. документов.
Итого, понадобится 3136/3 = 1045 серверов для ранжирования поисковой базы.
Еще столько же (как минимум) для горячего бэкапа.
Еще понадобится около 128 серверов (+ резерв) для регулярного индексирования сайтов.
Аренда каналов - 3136 млн. * 0,1 Мбайт / в месяц (это очень грубо, можно попытаться сэкономить, но не факт).
Стороительство датацентров (хотя бы одного).
Надеюсь, я Вас убедил, что цифра в 2 млн. $ - очень (ну очень!) оптимистичная и скромная.
Согласен, ahrefs и базу имеет огромную, и актуальность (быстро индексирует).