Уточнение: Индексирование на своем личном сайте, НЕ ГУГЛ И НЕ ЯНДЕКС!
Проблема: Стандартное индексирование страниц для поиска проходит отлично. По поставленной ранее задаче клиент хочет чтобы при вводе букв в строку поиска автоматически появлялись предложения проиндексированных слов с сайта. Идеально подошел модуль search_autocomplete-7.x-2.3. Все ништяк. НО, клиент поставил новую задачу ограничить поиск по сайту по некоторым страницам. Пошарил индексацию в базе данных, понял что индексирование страниц происходит по всему сайту и индексирует все слова без ограничения, чему соответствует таблица search index в БД.
ПОЭТОМУ, в связи с поставленной задачей из-за того, что модуль Search_autocomplete ищет все слова в таблице search index, НАДО ОГРАНИЧИТЬ изначально индексирование сайта по конкретным страницам. Это нужно чтобы модуль search_autocomplete НЕ ВЫДАВАЛ в строке поиска слова из ограниченных страниц.
Задача: Ограничить индексирование сайта по конкретным страницам.
Вопрос: как ЭТО сделать?=(((
Комментарии
Запретить этому модулю индексировать все запрещенные клиентом страницы.
Почистить индекс модуля.
Радовать решенной
фигнезадаче.ну "Запретить этому модулю индексировать все запрещенные клиентом страницы" это и было у меня в задачах.
Почистить индекс модуля не получится, потому что он берет select'ом из таблицы search_index в БД. а search_index это твой проиндексированный сайт, почистить эту таблица проще простого в БД функциями phpmyadmin.
Вопрос: каким образом ограничить? Дополнительные Модули? В Общем Где что подшаманить?
Есть такой замечательный модуль Finder.
1. Ставите
2. Создаете 2 вьюхи (1 - в которой производится поиск, 2 - вывод результатов)
3. Создаете finder views с виджетом autocomplete.
4. Немного CSS.
Готово.
а где найти урок по созданию такого поиска через эти модули?
сорри, нуб я =)начинающий пока что=))
Решил проблему гораздо легче. отредактировал чуток SELECT в настройках Search Autocomplete, так как он берет по этому Select'у индексированные слова из таблицы Search_index. а слова в Search_index попадают после запуска Cron либо после нажатия Индексирование сайта в Конфигурациях в админке.
Решение:
1)Зайти в Конфигурацию----->
2)Поиск и метаданные----->
3)Search Autocomplete settings----->
4)Search page - Node Tab (search/node/%)----->
5)Нажать настроить----->
6)WHAT - What to display in Search Autocomplete suggestions?---->
7)Add all possible words (any word appearing on your website)--->
8)Нажать изменить----->
9)В поле "Query performed to get suggestion *"----->
10)Заменить код на
"SELECT DISTINCT s.word FROM {search_index} s, {node} n WHERE n.type = 'tablefield' AND n.nid = s.sid AND n.status = 1 AND LOWER(s.word) LIKE LOWER(:like_word)"
где
---{search_index} - таблица индексирования сайта после запуска cron в phpmyadmin.
---{node} - таблица с нодами с сайта.
---n - переменная, куда вписывается выборка из ТИПА МАТЕРИАЛА= tableifield. ----> вам нужно выбрать вашу колонку, то есть ВАШ ТИП МАТЕРИАЛА, который вы хотите, чтобы он ТОЛЬКО ЕГО индексировал у вас на сайте.
11)Сохранить.
12)Почистить таблицу search_index у себя в базе данных.
13)Запустить Cron или Индексирование на сайте у себя
14)Проверить как работает