Рейтинг:1

Is there a way to default sort by date when no search keywords have been used, but default sort by relevance for all searches?

флаг pe

At present, my project has default search pages for sections of the site. They are per-content type. When the user goes the "search page" for the content type, they see a views-generated search result page unfiltered by any keywords. In other words, it displays all the items for that content type. The view:

has expose form in a block enabled settings on the exposed form has 'input required' disabled

What I want to happen...

I'd like users to

  • see the unfiltered search result page sorted by newest first. At present, this page, if set to relevance, shows old content first.
  • automatically switch to relevance sorting when they enter keywords and execute a search. At present, I've set the first sort to date, to solve the 'old content first' problem, so users have to manually change the sort to relevance when doing a search.

Some options... I could separate the list pages from the search result pages. My question is, is there a way to make an unfiltered "search result" views page show the newest content first, while having the default sort actually set to relevance, so nobody has to manually change it? How does that sort really work when there aren't any keywords to supply "relevance"?

My config basics...

  • Drupal 9.3.7
  • search_api
  • facets
  • search_api_solr
Рейтинг:0
флаг pe

Думаю, у меня есть одно решение. Мне по-прежнему интересно узнать, есть ли лучший способ. Вот что, кажется, работает до сих пор:

В разделе сортировки представления у меня есть эти поля в следующем порядке:

  • Релевантность (по убыванию): раскрыто
  • Поле даты (по убыванию): открыто
  • Поле даты (такое же, по убыванию): не выставлено

После очистки кешей (важно) результат, по-видимому, заключается в том, что при переходе на страницу результатов поиска без выполнения поиска весь контент (как отфильтрованный) отображается по убыванию поля «Дата», но форма поиска и ее открытая сортировка указывает на релевантность. Когда я ввожу термины и запускаю поиск, он возвращается отсортированным по релевантности.

Я не уверен, почему это работает. На странице конфигурации представлений запрос без ключевых слов выглядит так:

Индекс: main_index
Ключи: НУЛЬ
Условия:
  [
    статус = 1
  И
    введите массив IN (
          'ресурс' => 'ресурс',
        )
  ]
Сортировка: search_api_relevance DESC, field_display_date DESC
Опции: массив (
    'search_api_view' => 'объект (Drupal\views\ViewExecutable)',
    'search_api_base_path' => 'поиск/ресурсы',
  )

Я могу узнать больше из журнала запросов mysql, но я признаю: я никогда не уверен, что понимаю, что я там вижу.

флаг pe
У меня есть один тип контента, где приведенная выше конфигурация не дает такого же результата. Пока не знаю, почему.

Ответить или комментировать

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