Перейти к содержимому

Как в яндексе сортировать поиск по дате

  • автор:

Сортировка результатов поиска по дате

Вот запрос , сортировка по релевантности. Тот же запрос, но сортировка по дате . Объясните, кто в теме, почему первые 6 результатов выдаются первыми, при сортировке по дате. Где эта хитрая дата, по которой яндекс сортирует результаты. Я всегда считала, что при сортировке по дате вначале должны выдаваться документы, проиндексирвоанные последними, то есть самые свежие с т.зр. поисковика. Эта самая дата индексации приводится в результатах поиска. А в данном случае имеем: 1) 01.07.2003 2) 03.04.2003 3) 02.12.2002 4) 16.07.2002 5), 6) — без даты. Дальше все более-менее нормально.

Удачи! Iva feel the power

  • eTarget 2011:Панельная дискуссия «Стратегия и планирование рекламной кампании в интернете»
  • eTarget 2011: Круглый стол «Реклама в онлайн-видео»
  • Могут ли «плохие» входящие ссылки привести к ухудшению ранжирования?

На сайте с 13.01.2003
14 июля 2003, 13:16
1) 01.07.2003
2) 03.04.2003
3) 02.12.2002
4) 16.07.2002

Так что, разве отсортированы не по дате?

Видимо, вы на год внимания не обратили 😉

ADPRO — Мы знаем, что Вам нужно! (http://adpro.ua)
На сайте с 13.09.2001
14 июля 2003, 13:32
Как писал InSAn

Так что, разве отсортированы не по дате?
Видимо, вы на год внимания не обратили 😉

Обратила, но забыла добавить (прошу прощения):

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

Не первый раз сталкиваюсь, кстати.

На сайте с 23.08.2002
14 июля 2003, 16:03

Iva, имхо в Яндексе есть разные глюки, это один из них 🙂

С уважением, Вячеслав Гайсин aka Smile. http://websitesales.ru (http://websitesales.su)
На сайте с 13.09.2001
14 июля 2003, 17:30
Как писал Smile
Iva, имхо в Яндексе есть разные глюки, это один из них 🙂

Я бы сказала — еще один. Хотя, убей меня, не может у меня уложиться в сознании, что сложного сделать стандартную сортировку по убыванию. �� Ох уж эти сложные системы.

Как в яндексе сортировать поиск по дате

Нашли ошибку? Выделите мышкой и нажмите Ctrl+Enter

Сортировка результатов поиска по релевантности

Когда покупатель вбивает запрос в поиск, то хочет сразу получить в выдаче соответствующие, по-другому — релевантные, запросу товары. Релевантность — это показатель максимального соответствия запросу.

Начиная с версии 1.8.2, в решение добавлен параметр «‎Сортировка результатов поиска по релевантности». С активным параметром ваши клиенты смогут быстро получить полные результаты поиска в соответствии их запросу.

В публичной части сайта появляется кликабельная кнопка «‎По релевантности». Она отвечает за показы максимально похожих товаров по поисковому запросу.

Активировать параметр можно в публичной части сайта. Включите «‎Режим правки», наведите на область каталога и нажмите на шестеренку.

Вы в параметрах компонента «‎Каталог». Перейдите в раздел «‎Настройки поиска» и поставьте галку в поле «‎Выводить кнопку сортировки по релевантности». Сохраните изменения.

Расширенный поиск Яндекса (и Гугла) с помощью установленного скрипта или в интерфейсе

В яндекс-поисковике, как и в Гугле, есть настройки расширенного поиска (по датам, документам, сайтам, стране, языку, . ) и специальные страницы для расширенного поиска. То и другое бывает неудобно из-за интерфейса — большого количества нажимаемых кнопок, кликов и движений. Для некоторых (частоиспользуемых) режимов поиска сделаны юзерскрипты с выбором одной из десятков кнопок в один клик. На экране видны лишь несколько стартовых кнопок, работающих как спадающие списки по наведению мыши.

Такой скрипт, когда-то бывший без спадающих списков, давно работал на страницах Гугла, и, судя по количеству скачиваний, приобрёл популярность среди англоязычных пользователей (есть выбор 5 языков интерфейса). Однажды подумалось, что его несложно будет перенести на Яндекс, и на выходных за пару дней адаптация и перекраска под цвета Яндекса была сделана, и теперь он представляется «целевой аудитории» — людям из IT, которым иногда приходится много искать и которым привычно устанавливать дополнительные скрипты и ходить по гитхабам.

Кроме утилитарной пользы, скрипт может быть интересен как полигон для отработки интерфейсных решений. Связка 2-3 скриптов в перспективе может начать работать как мета-поисковик, всё для этого уже есть, кроме последних штрихов — поставить связующие кнопки, портировать на mаilru и другие поисковики.

Сейчас же — рассмотрим, какие особенности Яндекса добавились в ранее существовавшее решение для Гугл.

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

Появилось и расширение функций в поиске по документам — интерфейс запросов к Яндексу позволяет искать по группе типов документов (мультиселект в настройках), а Гугл каждый раз — только по одному типу документов (PDF, DOC, SWF, . ).

В остальном — режим специальных настроек настолько хорошо пересекается, что позволил сделать похожим не только интерфейс, но и хранение параметров настроек. Это — поиск по сайту (домену) и поиск за последний интервал времени (более дня).

Подробности хранения настроек — решение с внешним localStorage

Ранее для Гугла аналогичное расширение приобрело сохранение настроек поиска. Просто потому что список своих доменов или язык интерфейса иногда желательно менять, а изменения прямо в скрипте — мало, что привычно лишь программистам-фронтендщикам, ещё и при довольно частых обновлениях нет возможности сохранить код части исправленного пользователем скрипта от общего обновления. Если появляются хранимые (в localStorage) настройки, то вопрос снимается.

Но тут у Гугла обнаружилась привычка стирать локальную память! С этим сталкивались ранее и пользователи Фейсбука, и для решения этой проблемы была статья на Хабре и скрипт по другому поводу (букмарклет закладок с прокруткой скролла окна). Здесь — аналогично, требовалось бежать с домена Гугла куда-нибудь на другой домен, куда скрипты-чистильщики не дотянутся. Организовано общение с тихой скромной страницей на github.io, где всё надёжно хранилось, почти как в банке. (Ссылка эта пригодится после установки скрипта, чтобы увидеть, куда настройки сохранились.)

Для Яндекса это вылилось в то, что хранение его настроек тоже было сделано на том же домене (github.io). Это немедленно привело к тому, что 2 разных скрипта, разных домена и разные поисковики приобрели общие настройки. Нет, их крайне несложно разделить, но зачем? Список любимых сайтов для поиска, язык интерфейса, и впоследствии — хранение последних интервалов дат — всё это стало появляться одинаково как в Гугле, так и в Яндексе, при условии пользования одним и тем же браузером.

Именно этот механизм сейчас даёт возможность очень просто сделать метапоиск — добавить в сохраняемые настройки поле для команд — просто команду «искать» или «искать с настройками», или «искать в выбранных поисковиках»). В дальнейшем, можно пофантазировать, что появится и синхронное управление картами, и просмотр в разделах, например, новостей, картинок. Согласитесь, удобно ведь ходить по карте в одном окне, а в соседнем — иметь синхронную копию в картах Гугл, чтобы переключаться на то окно, где более полная информация. И выдача картинок будет заметно разная и дополняющая.

Справочник вариантов расширенного поиска в Яндексе и Гугле

Этот список, возможно, дополнят специалисты-пользователи и разработчики компаний (дополню по комментариям или ЛС).
Все способы и виды сведены в список в целях организации небольшого справочника.
Многое в интерфейсе юзерскрипта не реализовано. Что реализовано — указано.

В Яндексе:

  • по региону
    в интерфейсе — поле с подсказками, где выбирается «регион» — страна, область или город;
    в запросе — &rstr= c магическим многозначным числом со знаком, совпадающим с другим недокументируемым параметром lr для своего региона; не всё работает — например, поиск по Маниле (rstr=-10629, это же Филиппины) не сильно отличается от общего;
  • по сайту или домену
    в интерфейсе — вводим в поле название домена (2 или 3 уровня, без продолжения)
    в строке поиска — пишем (без кавычек) » site:3dnews.ru» или подобное;
    Yandex Extra Buttons — спадающий список заранее прописанных доменов под кнопкой «site». Состав списка можно менять в настройках, через кнопку site—Настройки—форма настроек—перезагрузка страницы. Сохраняется во внешнем localStorage. Свой список доменов полезно скопировать для хранения, переноса на другой браузер и для восстановления.
    в запросе — &site=anysite.ru;
  • по стране
    в интерфейсе — переключается кнопка со смыслом «своя страна», т.е. на домене .by это — выбор «by» и не более;
    в запросе — &country=by, при этом можно указать и некоторые другие страны, по которым работает Яндекс, но что из них реально работает — не документировано. Например, &country=tr или com.tr не работает, как и множество «не близких» стран, не обязательно мелких;
  • точный запрос
    в интерфейсе — отдельная кнопка в подзаголовке или на специальной странице;
    в строке поиска — обрамить все слова или часть из них (составляющие точную часть запроса) кавычками;
    в запросе — &wordforms=exact
  • по языку страницы
    выбор языков небольшой, но он покрывает все страны, где Яндекс присутствует как отдельный конкурирующий поисковик, плюс английский, немецкий, французский; (этот список может быть кандидатом на ещё одну кнопку в юзерскрипте, но многие ли пользуются этой настройкой? Скорее всего, нет);
  • по типам (множественное число) документов
    в интерфейсе — выбрать из мультиселектового списка; при каждом клике сменяется выдача по аяксу (без перезагрузки); на странице advanced — выбрать типы из 14 (сейчас) чекбоксов;
    в строке поиска — дописывают (без кавычек) » mime: pdf» или подобное, поддерживается много типов, но один на запрос; что интересно, такой выбор типов НЕ поддерживается скриптами подзаголовка — очевидно, это — более старый способ выбора параметра;
    Yandex Extra Buttons — спадающий список заранее прописанных типов документа под кнопкой «PDF», которая сама по себе тоже выбирает указанный тип; по кликам страница подхватывает результаты и изменяет список выбранных типов в подзаголовке; скрипт устраняет баг отображения — подкрашивает кнопку типов, если хотя бы один тип был выбран; таким образом, кнопки юзерскрипта, по сути, инициируют «клики» по типам в подзаголовке, сами не отображают результаты мультивыбора, но работают и без подзаголовка (он появляется сам после первого клика);
    в запросе — &mime=rtf или &mime=rtf%2Cdoc, указывая все выбранные типы; работает и &mime=rtf&mime=doc и далее; запросы идут по AJAX, но с главной таким же способом можно отправить и не аяксовый запрос;
  • по последнему интервалу дат
    в интерфейсе — 3 отдельных кнопки в подзаголовке или 5 — на спецстранице;
    Yandex Extra Buttons — 4 спадающих списка в виде изначально небольших 4 кнопок — выбор за последние несколько: дней, недель, месяцев, лет. Выбранное значение сохраняется в настройках и перемещается в начало списка, чтобы при повторном таком же выборе было достаточно только нажать кнопку. Технически реализуется через запрос по произвольному интервалу дат (раздел ниже), страница запрос выполняет по AJAX, но с главной работает как обычная перезагрузка страницы;
    в запросе — магический параметр &within=число для некоторых интервалов; например, &within=1 — за 2 недели; 77 — за сутки, 2 — за месяц; 3 — за 3 месяца; 4 — за полгода, 5 — за год, 6 — за 2 года и т.д., 7 — за текущий день, 8 — за 3 суток или 4 дня (неизвестно точно, не проверялось), 9 — за 8 дней; можно попроверять, на результирующей странице интервал указывается с точностью до дня, а результаты — с точностью от часа до дня;
  • по интервалу дат
    в интерфейсе — 2 поля с дейт-пикерами (табличками для выбора дат из календаря);
    в запросе — &from_date_full=11.01.2016&to_date_full=19.01.2016

Есть ряд других более специфических параметров, язык запросов (например, минус-слова и упомянутые кавычки), которые не будем рассматривать, но часть их могут оказаться в интерфейсе юзерскрипта расширенного поиска. Кроме того, у Яндекса есть ряд типов страниц (картинки, видео, новости, Маркет, и т.д.), где запросы могут иметь особенности (например, есть поиск по изображениям, поиск географического места на карте). Скрипт же сейчас покрывает основное поле — текстовый поиск.

В разделе Яндекс-новостей расширенный поиск идёт по другим именам параметров, и скрипт на данном этапе в этом разделе не выполняется. У Гугла же в разделе новостей действуют те же правила построения запросов, скрипт для Гугла работает во всех его основных разделах.

В Гугле:

  • по типу (единственное число) документа
    в интерфейсе — advanced_search — file type:
    — один из 10 форматов; текстовым запросом могут искаться и другие типы, кроме названных в списке;
    в строке поиска — дописывают (без кавычек) » filetype: pdf» или подобное;
    Google Search Extra Buttons — пока что сделано как 2 отдельных кнопки (без списков) для PDF и DOC (прочие типы в Гугле достаточно удобно задавать в строке поиска, поэтому много типов документов было введено, только начиная со скрипта для Яндекса);
    в запросе — &as_filetype=xls
  • по последнему интервалу дат
    в интерфейсе — Search Tools — (Any Time | Past), далее — 5 вариантов выбора, или есть вариант задания любого интервала дат здесь же или на спецстранице;
    Google Search Extra Buttons — 5 спадающих списков в виде изначально небольших 5 кнопок — выбор за последние несколько: дней, недель, месяцев, лет, часов (в дополнение к тому же в Яндексе). Выбранное значение сохраняется в настройках и перемещается в начало списка, чтобы при повторном таком же выборе было достаточно нажать кнопку;
    в запросе — 2 вида запросов с теми же результатами, но с разным дизайном страницы выдачи
    &as_qdr=m2 — вид с чёрным заголовком;
    &tbs=qdr:h1 — более новый вид; вместо «h» ставится h, d, w, m, или y; число — количество размерных единиц или пусто, что будет равносильно 1;
  • по интервалу дат
    в интерфейсе — Search Tools — (Any Time | Past) — Custom Range. ; на спецстранице — выбор только по нескольким последним интервалам дат (раздел выше);
    Google Search Extra Buttons — отдельная кнопка, сразу вызывающая форму интерфейса; на главной — нет её поддержки, поэтому кнопка скриптом не отображается;
    в запросе — &tbs=cdr%3A1%2Ccd_min%3A12%2F29%2F2015%2Ccd_max%3A1%2F5%2F2016;
  • по сайту или домену, в том числе верхнего уровня (.com, .cc, . )
    в интерфейсе — на странице расширенного поиска (значок зубчатки — Advanced Search);
    в строке поиска — дописывают (без кавычек) » site: anysite.com» или подобное, в том числе домен верхнего уровня без точки;
    Google Search Extra Buttons — отдельная кнопка со спадающим списком с заранее прописанными доменами, список которых можно менять в настройках. При клике по начальной кнопке она не инициирует поиск, а только выводит текст в строку поиска, что удобно для поправки домена. Поэтому первый домен можно вообще задавать пустой строкой;
    в запросе — &as_sitesearch=anysite.com;

Другие параметры — у Гугла есть ряд других параметров для текстового поиска и язык запросов, подробное рассмотрение которых выходит за рамки цели статьи, но они могут оказаться в будущем в интерфейсе юзерскрипта.

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

По теме организации метапоиска по обычным запросам

(Дальше пойдут планы и фантазии, интересные разработчикам интерфейсов.)

В самом простом виде метапоиск — это просмотр результатов в 2 соседних окнах одного браузера. Дополнительно можно поисключать одинаковые ответы из второго окна. Если задаться целью получить выдачу в одно окно, нужно решать, в каком месте списка внедрять элементы списка из второго окна. Скорее всего, удобно внедрять на примерно ту же позицию, которую занимал элемент во 2-м окне. И, конечно, указывать, от какого поисковика пришли ответы, чтобы у пользователя накапливалась в памяти статистика, по каким запросам от какого поисковика он получил себе полезный ответ.

Замечание по политике поисковиков. Делать метапоиск в одном окне технически невозможно, потому что современные крупные поисковики строго следят, чтобы запрос выполнялся не в фрейме, чтобы ответ приходил в настоящую страницу, а не в XMLHTTP-объект. Это связано с доходами от сопутствующей рекламы, составляющих ныне основной хлеб любого поисковика. Для пользователя, наоборот, важен результат и максимум — тот движок, который его даёт.

Метапоиск на скриптах — это вероятность близкого будущего. Для реализации — коды скриптов имеются на Гитхабе (Yandex, Google), приветствуются новые решения.

UPD: Кто поможет сделать белорусскую, казахскую и турецкую локализации?

объём и формат

UPD2 2016-01-22: первичные кнопки сделаны как стрелки, по стилю кнопки Яндекса. Скриншоты в статье заменены.

Сортировка (ORDER) — Основы реляционных баз данных

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

Теоретически порядок может поменяться при следующем запросе, или когда количество данных в таблице изменится. Обновление версии базы данных тоже может повлиять на это.

В этом уроке мы разберем, как сортировать данные в базе в том порядке, который нам нужен. Для этого используется запрос ORDER BY .

Общая схема запроса на сортировку

Допустим, нам нужно сортировать данные в базе:

Сортировка задается с помощью части ORDER BY , за которой следует имя поля — по нему происходит сортировка:

SELECT * FROM users ORDER BY username; 

Такой запрос вернет всю информацию о пользователях, отсортированную по username . Если порядок не указан, то сортировка происходит по возрастанию ASC .

Сортировка подразумевает сравнение значений между собой. По какому принципу база данных сортирует строки username как в примере выше? Самый распространенный способ — лексикографический порядок, то есть по алфавиту.

База данных знает, как сравнивать не только числа, но и строки, и даты. Сортировка по датам — крайне частая операция, выглядит она идентично любой другой сортировке:

SELECT * FROM users ORDER BY created_at; 

Здесь мы отсортировали пользователей по дате создания в прямом порядке, то есть по возрастанию.

Управление порядком сортировки

Сортировать данные можно разными способами:

  • В прямом порядке
  • В обратном порядке
  • По нескольким полям

Прямой порядок сортировки

Если ничего дополнительно не указывать, то ORDER BY сортирует в прямом порядке — от меньшего к большему. Запрос выше — это сокращенная версия полного запроса с сортировкой. Полный запрос включает в себя ASC , который подставляется автоматически, если ничего не указано:

SELECT * FROM users ORDER BY created_at ASC; -- То же самое, что и SELECT * FROM users ORDER BY created_at; 

Обратный порядок сортировки

Чтобы выполнить сортировку в обратном порядке, указывается DESC :

SELECT * FROM users ORDER BY created_at DESC; 

Сортировка по нескольким полям

Иногда нужно сортировать данные сразу по нескольким полям. Этого можно достичь, если перечислить поля через запятую:

SELECT * FROM users ORDER BY first_name, created_at; 

Порядок сортировки в таком случае задается для каждого поля индивидуально:

SELECT * FROM users ORDER BY first_name DESC, created_at DESC; SELECT first_name, created_at FROM users ORDER BY first_name ASC, created_at DESC; 
first_name created_at
Maryse 2019-03-04 13:03:01
Maryse 2018-12-06 10:24:04
Maryse 2018-12-06 10:09:48
Sunny 2019-03-04 13:04:28
Sunny 2018-12-06 06:19:30
Tanya 2018-12-06 07:12:01
Tanya 2018-12-05 23:55:15

В этой выборке сначала выполняется сортировка по имени в прямом порядке. Затем внутри групп с одинаковым именем данные сортируются по created_at в обратном порядке.

Еще у сортировки есть один тонкий момент, который связан с полями NULL .

Сортировка NULL-значений

Если поле содержит NULL , и ничего не указано дополнительно, то считается, что NULL больше любого значения. Получается, что при прямой сортировке они окажутся в конце выборки, а при обратной — в начале. Этим поведением можно управлять с помощью фразы NULLS FIRST :

-- сортируем по возрастанию даты (поле "created_at") -- поведение по умолчанию: -- поля, которые содержат NULL, идут последними SELECT * FROM users ORDER BY created_at ASC; -- сортируем по возрастанию даты (поле "created_at") -- поля, которые содержат NULL, идут первыми SELECT * FROM users ORDER BY created_at ASC NULLS FIRST; 
-- сортируем по убыванию даты (поле "created_at") -- поведение по умолчанию: -- поля, которые содержат NULL, идут первыми SELECT * FROM users ORDER BY created_at DESC; -- сортируем по убыванию даты (поле "created_at") -- поля, которые содержат NULL, идут последними SELECT * FROM users ORDER BY created_at DESC NULLS LAST; 

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *