Сортировка результатов поиска по дате
Вот запрос , сортировка по релевантности. Тот же запрос, но сортировка по дате . Объясните, кто в теме, почему первые 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 студентов
Наши выпускники работают в компаниях: