Поиск по страницам, создаваемым вьюшками

Главные вкладки

Аватар пользователя Assador Assador 27 марта 2016 в 13:48

Вопрос по Drupal 8 и поисковым модулям. В частности, Search API.
Сайт построен следующим образом. Есть словарь таксономии с разделами сайта в качестве терминов. Есть представление Views с кучей страниц в нём, у которых указаны: путь (вроде /someparentpage/somepage), поля для вывода (заголовок, содержимое, как минимум) и фильтр по терминам таксономии этого словаря разделов. Отдельно главное меню по сайту с теми самыми путями (можно было привязать через Taxonomy Menu, но не стал плодить сущности — не в лом ручками создать раздел в словаре и меню). Наполнение происходит следующим образом: раздел в словаре и меню, страница во вьюшке, в которой в критериях фильтрации можно указать несколько терминов словаря разделов (чтобы нода могла быть «прикреплена» и показана в разных разделах), сама нода, привязанная галками при создании к нужным разделам сайта, причём неопубликованная (sic!, чтобы не болталась сама по себе по своему адресу, а была доступна только по нужным путям сайта). Сделано всё это для того, чтобы а) к одной странице сайта можно было прикреплять несколько нод, б) одну ноду можно было прикреплять к разным страницам сайта, в) легко было потом тасовать эти ноды по разделам, просто расставляя нужные галки при редактировании (в типы материалов добавил поле со ссылкой на термин таксономии).
Собственно, вопрос. Как по всему этому безобразию устроить поиск? Причём так, чтобы ссылки были именно на соответствующие разделы сайта (по которым они выводятся; указаны на страницах Views и меню) а не на неопубликованные ноды, очевидно. Поставил Search API, долго мучил его и гуглил, но ничего не нашёл. Есть ещё куча других поисковых модулей, но прежде чем все их ставить, долго и мучительно пробуя, читая и выбирая, решил сначала посоветоваться здесь. Задача, на мой взгляд, довольно банальная — поиск не по нодам, а по редко изменяемым страницам Views. Добавил ноду, прикрепил к нужному разделу, переиндексировал поиск, который теперь знает, что она показывается на такой-то и такой-то страницах Views, которые доступны по прописанным в них путям.

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 28 марта 2016 в 9:46

Views в 8-ке = в коробке, в нем можно напрямую фильтр contains настроить по полю или нескольки и не парить моцг поисковым функционалом с индексацией. Или у Вас миллион страниц?

Аватар пользователя Assador Assador 28 марта 2016 в 10:06

Я имею в виду именно поиск по сайту. Уже размещённых с помощью Views материалов. Ту строчку, куда посетитель сайта вводит слово/словосочетание и нажимает кнопочку «найти». Так вот, эти Views-страницы, выдающее содержимое по фильтру, не индексируются. Или мне в эти фильтры весь текст дублировать?

Аватар пользователя Lotar Lotar 28 марта 2016 в 13:01

Они и не будут индексироваться. Это не странички это выборка данных. Если хотите поисковый индекс тогда ставьте search api и фасетный поиск какой-нибудь. Или solr.

Аватар пользователя Assador Assador 28 марта 2016 в 14:31

Да, так и думал о выборке данных… Жаль. Спасибо, почитаю. Но, кстати, я же и написал о том, что стоит Search API. В общем, буду читать. Ещё, вроде, есть “Search by Page”; судя по описанию — то, что нужно, если я всё правильно понял. Но вот для восьмой ветки друпала пока его нет. А фасетный поиск, если я, опять же, правильно понял, не совсем то, что нужно. На сайте просто много текстов, а не каких-то сущностей с характеристиками. Так что пригодился бы просто тупо поиск по текстам во всех «разделах» сайта. Ну, на крайний случай гугловский site:… никто не отменял.

Аватар пользователя Lotar Lotar 28 марта 2016 в 15:05

тексты это тоже сущности - блоки или ноды. solr и сфинкс позволяют гораздо лучше индексировать содержимое и критерии для поиска. и с другой стороны они свой индекс для поиска используют, что ускоряет работу при больших объемах

Аватар пользователя Assador Assador 28 марта 2016 в 15:14

Да, я понимаю Smile Я имею в виду, что в самих текстах как сущностях особых отдельных атрибутов нет, вроде цены, бренда, «в ролях», и т.п., по которым можно фасетничать. Автор, редакция, время и обчёлся. Нужен же поиск именно по словам/словосочетаниям и т.д. В общем, ещё раз спасибо за направление, куда RTFM-мить — solr, сфинкс.