[РЕШЕНО] Стандартная индексация на своем сайте. Как ограничить индексацию?

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

Аватар пользователя Antidot Antidot 21 марта 2013 в 7:39

Уточнение: Индексирование на своем личном сайте, НЕ ГУГЛ И НЕ ЯНДЕКС!
Проблема: Стандартное индексирование страниц для поиска проходит отлично. По поставленной ранее задаче клиент хочет чтобы при вводе букв в строку поиска автоматически появлялись предложения проиндексированных слов с сайта. Идеально подошел модуль search_autocomplete-7.x-2.3. Все ништяк. НО, клиент поставил новую задачу ограничить поиск по сайту по некоторым страницам. Пошарил индексацию в базе данных, понял что индексирование страниц происходит по всему сайту и индексирует все слова без ограничения, чему соответствует таблица search index в БД.
ПОЭТОМУ, в связи с поставленной задачей из-за того, что модуль Search_autocomplete ищет все слова в таблице search index, НАДО ОГРАНИЧИТЬ изначально индексирование сайта по конкретным страницам. Это нужно чтобы модуль search_autocomplete НЕ ВЫДАВАЛ в строке поиска слова из ограниченных страниц.

Задача: Ограничить индексирование сайта по конкретным страницам.

Вопрос: как ЭТО сделать?=(((

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 21 марта 2013 в 9:18

Запретить этому модулю индексировать все запрещенные клиентом страницы.
Почистить индекс модуля.
Радовать решенной фигне задаче.

Аватар пользователя Antidot Antidot 21 марта 2013 в 9:45

ну "Запретить этому модулю индексировать все запрещенные клиентом страницы" это и было у меня в задачах.

Почистить индекс модуля не получится, потому что он берет select'ом из таблицы search_index в БД. а search_index это твой проиндексированный сайт, почистить эту таблица проще простого в БД функциями phpmyadmin.

Вопрос: каким образом ограничить? Дополнительные Модули? В Общем Где что подшаманить?

Аватар пользователя divined divined 21 марта 2013 в 12:33

Есть такой замечательный модуль Finder.

1. Ставите
2. Создаете 2 вьюхи (1 - в которой производится поиск, 2 - вывод результатов)
3. Создаете finder views с виджетом autocomplete.
4. Немного CSS.

Готово.

Аватар пользователя Antidot Antidot 26 марта 2013 в 11:45

Решил проблему гораздо легче. отредактировал чуток 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)Проверить как работает