Яндекс.Сервер – наша платформа, ваше ранжирование!

25 сентября 2009, 15:11
Мы выпустили новую версию Яндекс.Сервера – приложения для полнотекстового поиска в корпоративных сетях и поиска по сайтам. Что в ней нового? Формула ранжирования. В Яндекс.Сервере можно влиять на ранжирование - при вычислении релевантности страниц могут учитываться определенные вами показатели: например, популярность, рейтинг, новизна страниц сайта. Поиск на лету. Благодаря новому хранилищу индексов созданные документы добавляются в Яндекс.Сервер по мере поступления и почти мгновенно попадают в поиск, поэтому ваши пользователи найдут самую свежую и актуальную информацию. Поддержка новых языков. Продукт полностью переведен на юникод, поэтому поиск возможен на любом алфавитном языке. Например, на тюркских языках (казахский, татарский, турецкий, азербайджанский), арабском, греческом, грузинском, иврите. Скачивайте и находите всё! Богдан Гаркушин, подбираю формулу ранжирования...
79 комментариев
Подписаться на комментарии к посту
Шумилов Павел
25 сентября 2009, 16:10
Здорово! Надо будет обязательно внимательно посмотреть, и если нам это подойдет обязательно будем использовать!
Комментарий удалён

Пока что поиск будет идти "влоб" по точной словоформе!
Но идти уже будет (раньше не ходил совсем).

если не секрет, чем вызвано изменение системы версий?
Появляются новые версии и мы стараемся не отставать.
Ответил видимо не на тот вопрос, который задан.
Просто решили попрбовать называть по году и месяцу.
Весия 2009.05 говорит о том, что мы сделали версию в мае, а к настоящему моменту, т.е. к сентябрю создали стабильную версию, которую готовы показать во вне.
А метапоиск вообще в каком-либо виде работает? Или это так, фича для галочки...
Метапоиск работает и работает замечательно.
А если еще к http-запросу к meta-поиску добавить cgi-параметр: rd=5, то будут удаляться дубликаты по сниппетам.
А у нас при использовании локальных поисковых источников и при использовании более одного удаленного служба вообще не стартует.
Cейчас для работы Мета-поиска в каталог метапоисковой коллекции нужно поместить любой созданный индекс.
В следующей версии уберем эту необходимость.
Ребята, давно слежу за вашим продуктом, т.к. активно использую его в
своей работе. Огромный плюс, что вы добавили индексирование баз данных.
Но когда же Вы напишите нормальную документацию по нему??? Никаких
объяснений по поводу ошибок при старте. Неизвестен полный список
поддерживаемых форматов, т.к. везде написано "итд". Не написаны
ограничения. Например, нельзя индексировать не html/plain/text форматы
в базах данных, а в документации про это ни полслова. В одщем вывод
такой. Продукт - СУПЕР, но настолько же плохая документация к нему и ,
к сожалению, её качество не меняется вот уже те два года, в течении
которых я знаком с вашим продуктом. 
Документация конечно сложная, но страдает она не от отсутсвия информации, а от ее избытка:
http://download.yandex.ru/yandex-server/download/yandex-server-manual.pdf

Индексация баз данных есть уже давно, это не новая фича.

Кстати, а о каких ошибках на старте Вы пишете?
Комментарий удалён
Да, это сделать хочется, но процесс внедрения продукта требует отдельной работы!
Не думаю, что ППЯ будет достаточно технологического обновления.
Кстати, а алфавитные - это какие точно языки? С японским вот пока никак, насколько я понимаю. А там есть алфавит. Даже целых два. :-)
Японский и Китайский не можем точно
Если вам нужен поиск по японским текстам, попробуйте DataparkSearch вместе с Mecab или ChaSen.
Здравствуйте!
Установил себе на сервер ваш замечательный продукт и столкнулся со следующей проблемой:
при выводе результатов поиска у меня по умолчанию сортировка идет по ID документа(а может и по дате, у меня просто сортировка по дате совпадает с сортировкой по ID), но никак не по релевантности. Ставлю по дате - делает по дате по убыванию или по возрастанию, так же работает сортировка по группировкам.

Индексация происходит по базе mySQL все прекрасно работает, кроме сортировки по релевантности :(.

Пробовал ставить &how=rlv - не помогает.
Может подскажите в какую сторону копать?
Подскажите, о какой релевантности Вы сейчас говорите:
- о встроенной текстовой релевантности
- или о пользовательской, доступной через UserRelevanceLibrary?
О встроенной текстовой. То есть у меня вначале могут идти документы, где сопадают, например, все слова но разбросанные по тексту, а в середине выдачи может быть документ с полным совпадением фразы и в заголовке. Установлено все на Ubuntu 8.10 Правда есть один глюк, при запуске сервера выдает: Starting Yandex.Server (/usr/local/sbin/yandex-server) unknown error В логах при этом о unknow error ничего не пишет ( Но все работает при этом.. Кроме вот сортировки по релевантности :)
Спасибо за рекомендацию.  Я откатил яндекс.сервер тоже на предыдущую версию. Всё стало работать лучше. И произовдительность поднялась в разы и ошибки исчезли. Буду теперь поосторожнее относиться к свежим релизам поисковика.
Разобрался с этой проблемой путем установки сервера предыдущей версии. Сразу все заработало, достаточно было заменить только файл самого сервера.

Остается еще один вопрос к вам, Богдан. Умеет ли сервер выдавать каким то образом урезанные данные, в частности надо только один атрибут, по которому идет группировка. Нужно для того, что бы забирать сразу всю выборку одной страницей (например около 5-10тыс. результатов) в ускоренном режиме, а то "стандартный" xml строится уж очень долго(для большого количества), а потом его еще и парсить столько же времени. Может как то можно вытянуть интересующую меня информацию из файлов кеша? При этом надо сохранить возможноть забирать "полные" ответы, как в стандартном XML.
В запросе можно задавать количество результатов поиска на странице.
Задавайте 10 или 100, тогда формирование SERP будет быстрым.

А вот установка предыдущей вресии, это плохо (для нас).
Хочется исправить ошибку.

Можно поподробнее о неправильной сортировке по релевантности?
Почему Вы решили, что сортировка неверная?
Сергей Белов
14 октября 2009, 21:16
Я же вам про это сегодня рассказывал ;)

Да, предыдущую версию сложно назвать решением. У меня стоит до сих пор версия FREE-020-3.8.3, т.к. во всех следующих версиях обнаруживались ошибки, делающие невозможным использование. Версии 3.8.9-10 выдавали пустые сниппеты и открывали большое (в смысле не закрывали) количество tcp-соединений, а последняя версия ENT-020-2009.5.3 выдает как и у Олег результаты с сортировкой по дате, а не по релевантности (во всяком случае, выдача по дате и по релевантности совпадает и не имеет ничего общего с релевантной выдачей). Также выводит unknown error при старте и в лог ничего по этому поводу не пишет.

ОС FreeBSD 6.3

Релевантность починили. Можно скачивать:
http://company.yandex.ru/technology/server/shareware/download.xml

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

В описании полей поисковой формы также упоминается ds — URL документа для поиска похожих документов, но при запросе http://yandex-server/collection?ds=URL выдает Search request is empty. Старая версия (FREE-020-3.8.3) на такой запрос выдает список похожих документов. Кроме того, что я процитировал, в инструкции об этом ничего не говорится :(

ОС FreeBSD 6.3

Всегда было интересно. А они сами проверяют релиз, прежде чем выкладывать :).
Возможно, вам будет интересно: тоже как и предыдущие комментаторы испытываю проблемы с ранжированием результатов - оно выполняется практически по алфавиту.

Инсталляция - абсолютно стандартный Yandex_Server-2009.5.3--Windows-i386.exe. Из настроек - только указание индексить 3 сайта в локальной сети.

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

Хотелось бы получить обратную связь об этой проблеме.
Спасибо.
Здорово! Надо будет обязательно внимательно посмотреть!
Мамочки! Заметил новую версию и сразу же решил её поставить на серверах. С ужасом заметил, что она требует ресурсов раза так в два больше.
Сколько же надо машин под 100к запросов в день?
Сейчас всё работает на двух машинках каждая по 8 процессоров от интелла и с 8 Гб памяти. И машинки эти парятся при 8 тредах и 8 запросах в очереди. База небольшая. Всего 4 миллиона документов.
Что подскажете попробовать сделать? Может где-то есть группа админов яндекс.сервера, а то документации оооочень мало.
Ещё вопрос. Планируется ли реализовать коннектор к субд postgresql? или может быть кто-то из юзеров уже такое написал. А то как-то через odbc в линуксе к postgresql подключаться не очень хочется.
Коннектор к Postgresql мы не планировали, такая задача остро не стояла. Но если вдруг Вы найдете такой кем-то уже написанный, присылайте информацию.
хмм, вобщем явно у вас что-то не то с обработчиком запросов. Привожу примеры экспериментов с яндекс сервером 3.10
1. такой запрос  http://127.0.0.1:17000/?xml=no&text=abrakadabra+sim+salabim&fa=private:2&g=1.urlid.10.1.-1&numdoc=10&p=0&t=4 не учитывает параметр t=4, а выдаёт все текстовые фрагменты
2. два запроса отличаются только параметром xml. Если он yes, то ничего не находится, если no - то всё находится.

так находит http://127.0.0.1:17000/?xml=no&text=Экс+участница+группы+Лера+Козлова+расторгла+контракт+с+продюсером+группы+Сергеем+Мильниченко+ПЦ+заключенный+около+пяти+лет+назад&fa=private:2&g=1.urlid.10.1.-1&numdoc=10&p=0

с хмл нет http://127.0.0.1:17000/?xml=yes&text=Экс+участница+группы+Лера+Козлова+расторгла+контракт+с+продюсером+группы+Сергеем+Мильниченко+ПЦ+заключенный+около+пяти+лет+назад&fa=private:2&g=1.urlid.10.1.-1&numdoc=10&p=0


3. вот такие запросы приводят к зависанию обработки поиска и сервера тупо надо каждые 5 миниут перестартовывать

 

http://127.0.0.1:17000/?xml=yes&text= text=abrakadabra+sim+salabim+<(abrakadabra)+&&+(sim)+&&+(salabim)]&fa=bmprivate:2&g=1.bmurlid.10.1.-1&numdoc=10&p=0

А вот если скобки убрать, то всё шустро

http://127.0.0.1:17000/?xml=yes&text= text=abrakadabra+sim+salabim+<abrakadabra+&&+sim+&&+salabim]&fa=bmprivate:2&g=1.bmurlid.10.1.-1&numdoc=10&p=0

Эта ошибка свойственна также и свежему 2009.05 серверу.


Можете ли Вы подтвердить это поведение и когда будут патчи?

все эти ?недоделки? присутствуют и в новой версии 2009.05 единственно, что радует, что новая версия пишет логи в utf8 в остальном преимуществ пока не вижу
сейчас экспериментирую ещё раз с новой версией с несколько, убрав из запросов скобки вокруг названия переменных атрибута. производительность в новой версии хуже, чем в старой. 
если не получится методом конфигурации поднять производительность на уровень прошлой версии, придётся обратно поставить старую версию.
Мб. кто нибудь из разработчиков сервера сказал в чём конкретно преимущество новой версии по отношению с предыдущей (за исключением тех пунктов, кот. стоят на сайте)
Отвечу на 2-ой вопрос:
Это различия html- и xml-репортов.
Первый сам добавляет параметр мягкости //50.
Если вы использует xml-репорт, то в запрос нужно добавлять //50
А как именно нужно указывать этот параметр мягкости?!
&soft_koeff=50 не работает... (
и text=some//50 тоже не работает...
по идее нужно в тест запрос просто добавить //50, если не работает, то опишите пожалуйста ситуацию подробнее.
Возьмите один документ, проиндексируйте его, попробуйте задать запрос в XML и, если не заработает, то пришлите описание эксперимента.
в ответ на такой запрос:
http://192.168.216.100:81/OSU_LIBRARY?xml=yes&text=php+mysql
возвращает 6 документов,
а на такой:
http://192.168.216.100:81/OSU_LIBRARY?text=php+mysql
уже 8, как и должно быть
но этот запрос
http://192.168.216.100:81/OSU_LIBRARY?xml=yes&text=php+mysql//50
возвращает только 6 тех же документов, что и в первом случае...

может я вас не правильно понял по части синтаксиса?
спасибо, так работает! :)

Пытаюсь исключить из индексации часть страниц использую DisallowIndex, но параметр игнорируется.

В логе индексатора ни как не отображается.

Использование DisallowFollow отражается в логе как Disallow.

Я что то не правильно настроил или это ошибка? 

Пришлите кусок конфига, который относится к директирвам DisallowIndex и DisallowFollow

медицина лекарства компьютерные сети схемы радиотехника electronic circuits electronic schematics психология психотерапия кулинария для всех рецепты в мире технологий техника seropol5

Может быть кто-нибудь подскажет, как изменить язык сообщений от Яндекс-Сервера, например:


Search request is empty

Cannot find these words


Заранее благодарю!

А зачем менять язык сообщений?
Так ведь они на английском языке, а выводить их нужно пользователям в браузер.
Мне кажется что для общения с пользователем лучше сделать следующую схему:
1. Для поиска использовать XML-запросы
2. Для вывода информации пользователю клиентскую часть (браузерную или приложение) которое умеет анализировать получаемый в результате XML и сообщать пользователю результаты поиска.

Для того, чтобы результаты поиска были в XML нужно к http-запросу добавить cgi-параметр xml=da
Спасибо, мы так и сделали, но в получаемом XML сообщения об ошибках поиска выдаются на английском.
Думаю, что их не сложно перевести на уровне front-end-а и вывести пользователю на понятном ему языке.
Придётся.
Так наиболее правильно.
Дело в том, что логи ядра продукта - это скорее информация для разработчиков и внедренцев, но это в гораздо меньшей степени информация для пользователя поиска.
Удачи!
Хотелось бы попросить как-то отписываться по поводу выкладывания новых релизов.
И обратить ваше внимание на ошибку в последней сборке (в которой бинарники от 6 февраля).
В linux версиях (rpm и tar.gz) наблюдается ОЧЕНЬ странная структура каталогов ;-) и отсутствие нескольких библиотечек.
Да, спасибо, мы уже в курсе.
Экстренно пытаемся починить.
Постараемся отремонтировать все к понедельнику.
Похоже, вы таки читаете и отвечаете на комментарии к этой записи, но мой ответом не удостоили, может, пропустили?

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

В описании полей поисковой формы также упоминается ds — URL документа для поиска похожих документов, но при запросе http://yandex-server/collection?ds=URL выдает Search request is empty. Старая версия (FREE-020-3.8.3) на такой запрос выдает список похожих документов. Кроме того, что я процитировал, в инструкции об этом ничего не говорится :(

Последняя версия от 13.02.2010 ведет себя так же - в инструкции есть, а сервер выдает, что запрос-де пуст. Если при этом указать запрос, выдача ничем не отличается от таковой без параметра ds=URL.

ОС FreeBSD 6.3

У меня есть версия, что функция более не поддерживается, а из документации удалить забывают, но надеюсь, что это не так и это просто баг и он будет исправлен.
По утверждению наших ГУРУ - эта функция есть и должна работать.
Ну а раз не работает, значит это баг.
Будем исправлять, правда большой оперативности не обещаю.
Возможно, что ошибку исправи не раньше чем через месяц другой.
Не работает :( Установил на FreeBSD 8 версию Yandex_Server-2009.5.4-ENT-FreeBSD72-x86_64.tar.gz , поиск работает, а при запросе http://host:port/collection?ds=url выдает Search request is empty
Под FreeBSD 8 не собирали.
Была FreeBSD 6 и 7
Да, есть версии под 6 и 7, но мне удалось запустить старую версию FREE-020-3.8.3 под 8-й FreeBSD и она выдает как поиск по запросу, так и похожих документов; версия 2008.12 (3.10) (собранная под 7.0) также все выдает, но похожих выдает только пару штук, а нередко и только сам документ, заданный для поиска, возможно, там есть еще какие-то параметры типа строгости поиска и можно её "ослабить", сделать менее строгой, чтобы выдавалось больше результатов? А версия 2009.05, собранная под FreeBSD 7.2 выдает только результаты по запросу, а при поиске похожих выдает Search request is empty. Мне кажется все же, что дело тут не в версии операционной системы.
Да, действительно поиск похожих мы не проверяли в последней версии, поэтому он вполне может не работать.
Если для общественности будет доступна пилотная версия документации по эффективному внедрению и интеграции корпоративного поиска с использованием Яндекс.Сервер, это  был бы самородок для специалистов!
Как раз такой самородок мы готовим, но сказать когда он будет готов не можем. Много всего еще нужно сделать.

Сколько ищу - не могу найти где можно загрузить версию Сервера от 13.02.2010...


И еще, будет ли реализована пара параметров, в которых:


1. Можно будет указывать слова-синонимы (к примеру, ДОУ - дошкольное образовательное учреждение, МОУ СОШ - муниципальное образовательное учреждение средняя общеобразовательная школа и т.п., т.е., грубо говоря, можно было указывать расшифровки аббревиатур).


Существующий параметр MorfFixFile может заменять только "одно_слово" на "другое_слово", а не "одно_слово" на "целая_фраза" и наоборот...


2. Можно было бы определенные страницы по определенным запросам выдавать в начале результатов поиска. Иначе получается так, что действительно нужная информация находится внизу, а то и на следующих страницах результатов поиска, а всякие doc'и, pdf'ы и т.п. в начале результатов поиска.


Вот этих двух функций действительно очень не хватает.

Вроде бы здесь все можно скачать:


http://company.yandex.ru/technology/server/shareware/


 


1. Будет, но со сроками пока обещать ничего не могу.


2. Нужно смотреть Навигационный источник, но тоже в следующей версии


Сейчас можно попробовать специальным образом настроить коллекции для индексации и поиска

Вопрос про язык сообщений об ошибках. Установлена верия Yandex.Server  под FreeBSD -отображаются сообщения на английском типа Cannot find these  words и тп
У коллеги версия более старая и под Linux - все по русски.
Как можно получить собщения об ошибках поиска по русски?
А чем не подходит английский?
Я.Сервер - это же back end.
front end - может отвечать пользователю так, как нужно в данном конкретном случае (на русском, на английской, да хоть на арабском)
Тогда необходимо обрабатывать весь список служебных сообщений перед выдачей пользователю. Такого списка, кстати, нет.
Получается в функционале Yandex.Сервера нет возможности смены языка? Это не вопрос версий?
Служебных сообщений крайне мало. Полный список сообщений об ошибках есть в Перловом репорте: report.phtml

Что касается смены языков, то поиск и индексация по разным языкам, включая английский и русский, осуществляется автоматически, ну а сообщения об ошибках всегда на английском.




Konstantin Kalinin
10 ноября 2010, 15:28
Здравствуйте! Не могли бы Вы меня кратенько пнуть в нужном направлении по следующему вопросу:
Яндекс сервер индексирует базу MySql. На сайте есть поиск, который им пользуется. Всё хорошо.
Хотелось бы, чтоб результаты сортировались по такому параметру как сочетание релевантности и коэффициента устаревания информации.
Как определять коэффициент - я решу.
Главное, чтоб если нашелся мега-релевантный результат, но сильно устаревший, чтоб он оказался ниже чуть менее релевантного, но нового.

Как задать такое ранжирование результата)
Версия 2010 вылетает при индексировании некоторых pdf файлов. Есть ли способо не идексировать или не выдавать одинаковые документы, которые находятся в разных местах?
Интресно куда отправлять багрепорты. У меня например не стартует индексатор на сервере(Ubunut 10.10 x86_64 server, запушенный под openvz). он падает с ошибкой. Сама серверная часть запускается бе з нареканий.

При том что на моем компе (Ubunutu 10.10 x86_64 desktop) c идентичном конфигом все запускается без нареканий. Так же была проверена работа индексатора в виртуальной машине где была установлена Ubunut 10.10 x86_64 server, тоже с тем же конфигом работает.

П.С.
Вот так запускается индексатор 


# dsindexer
Yandex.DsIndexer
This program is a part of Yandex.Software 2010.9.0
Copyright (c) 1996-2009 OOO "Yandex". All rights reserved.
Call software@yandex-team.ru for support.
Product ID: ENT-030-2010.9.0
Start indexing...
Indexing was started at Sat Feb 19 13:19:31 2011

Sat Feb 19 13:19:31 2011 [Webds] [INFO] - Indexing: datasource webds opened successfully
Indexing was finished at Sat Feb 19 13:19:31 2011
It has been indexed 0 documents.
Index contains 0 documents.
Error: std::bad_alloc

Возник вопрос по поводу опции LoadLog
точнее формата того файла, который ей задается.
можно как-нибудь получить его описание и научиться его читать?
как минимум, понять какой запрос к какой коллекции был адресован.
nesterenko2000
12 мая 2011, 16:19

Добрый день, Богдан.

Попытался собрать у себя пример UserRelevanceLibrary. Возникла проблемы, поискольку в поставке отсутствуют файлики relevance_type.h и attr_type.h , которые поключаются в uctx.h

Буду благодарен за помощь

напишите, пожалуйста, об этом на software@yandex-team.ru
SebekonITSolutions
11 ноября 2011, 08:31

Богдан, никак не удается запустить поиск с учетом MorphFixFile

Яндекс сервер не запускает поиск, ошибка

Warning: SearchOpen failed to open /var/local/yandex/workindexlm/index: (No such file or directory) reqdata.cpp:18:
Probably index hasn't been created yet

уже все перепробовали, вручную индекс создается (по крайней мере так логи говорят) но вот поиск не запускается.

Что делать? Писал письмо в поддержку, ничего не отвечают

у меня аналогичная проблема: с MorphFixFile индексирует но поиск не стартует.

Как то удалось это побороть?

Не удалось настроить поиск по атрибутам и дате в версии 2010.9.

Искать удавалось только по литеральным атрибутам ( LITERAL/meta.author )

 

 

   

     author = TEXT/meta.author

 

 

Примеры запросов: author:pushkin , #author=(pushkin)

 

Поиск по дате, также не работал:

 

 

   

    date_group = LITERAL,doc,parse_data_integer,ignore/meta.date_group

    date_search = DATE,doc,parse_http_expires/meta.date_search

 

 

Примеры запросов: date_search:>20110830 , #date_search>"20110830"

Удалось решить эту проблему ?  

У меня вообще почемуто поиск по аттрибутам не работает.