Вы здесь

Как реализовать специфический поиск во Views?

0

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

  • Ижевск
  • Воткинск
  • Глазов
  • Сарапул
  • ...

Имеется Views которая имеет раскрытый фильтр по заголовку методом Contain word
В результате чего если человек ищет Глазов , он его вводит и тот находится, всё отлично,
проблема же состоит в том, что в этих нодах будут не только города но и адреса города
т.е. например в городе Глазов есть улица Ленина 1, или улица Школьная 16, и заголовки
соотвественно становятся

  • Глазов Ленина 1
  • Глазов Школьная 16

И если пользователь хочет найти только город он вроде бы как введет Глазов, и он его найдёт, но и соответственно найдёт и все адреса этого города.

Т.е. задача в том, что если пользователь пытается найти только город и вводит только Глазов - на выходе нужно получить только один результат, если же пользователь ищет Глазов Ленина то все результаты адресов улиц города Глазов с названием Ленина, ну а если ищет Глазов Ленина 1 - то один результат

Версия Drupal: 
7.x
Связанные проекты: 
Views
Вопрос задан 04.06.2017 - 13:31

Может быть, стоит задуматься над поиском не только по заголовкам?

Комментарий оставлен 04.06.2017 - 13:58

Не хочу заставлять пользователей думать, т.е. чтобы была одна строка поиска, в которую ввёл и забыл так сказать.

Комментарий оставлен 04.06.2017 - 15:41

Ответы

0

Только что как раз ковырялся и нашел в представлении такое после:
фильтр по такому параметру:
Глобальный: Фильтр комбинированных полей
Связать два поля вместе и вести по поиск по ним.
сам не тестил но название у него говорящее, как видите)

Ответ дан 05.06.2017 - 21:16
-1

есои вы не разбираетесь в коде то, то вот этот модуль поможет https://www.drupal.org/project/views_filters_combine, я с ним не работал. Лучше конечно сделать фасеты + search API, там можно тоже объединять поля поиска.

Ответ дан 04.06.2017 - 20:14

Боюсь это не совсем то, что мне нужно.
Мне скорее нужная такая логика, то что если в момент поиска в базе нод есть полное совпадение (equal to) то выводить единственный результат (т.е. человек ищет Глазов и есть нода с заголовком Глазов, получается 100% совпадение), если же неполное совпадение, то показывать то что подходит примерно (хотя опять таки в таком случае если человек введёт Глазов Ленина, то выведет и все результаты с улицей Ленина, так и просто Глазов, т.е. сам город, но это скорее уже другой вопрос)

Комментарий оставлен 05.06.2017 - 09:59