Интеграция Indexisto с Drupal.
Indexisto — это поисковый сервис по типу Google CSE и Yandex поиск для сайта, с одним лишь отличием, вы можете сами регулировать индекс. Т.е. данный сервис идексирует ваш сайт в трёх вариациях:
- Обычный поисковый паук, которые заглядывает на сайт и парсит всевозможную инфу, как это делают Yandex и Google. Если его самому не создать то никто заходить и парсить не будет.
- Управление индексом собственноручно средствами Indexisto API. Т.е. мы сами отсылаем данные в индекс, а также сами же их оттуда и удаляем.
- Работа с базой. Там задается разметка и то ли они парсят, то ли мы им сливаем данные, не суть важно, просто работа с базой ;) Просто она нас не интересует.
Мы остановимся на втором пункте, именно для него был создан соответствующий модуль, о котором мы и поговорим.
Модуль Indexisto — это “мост” между друпалом и Indexisto API. Он сам отсылает нужные нам данные и удаляет их при необходимости. По-сути, всё просто, но есть трудности с настройкой на стороне Indexisto.
Первоначальная настройка
Изначально мы устанавливаем модуль Indexisto и Token на наш друпал-сайт, а затем активируем их.
Заходим в настройки модуля и видим перед собой первоначальную форму.
Как вы можете заметить тут два раздела: Регистрация и авторизация на indexisto.
Регистрация
Если у вас нету аккаунта в сервисе indexisto, то настоятельно рекомендуется воспользоваться данным методом. В нем достаточно указать ваш email, на который зарегистрируется аккаунт, а также секретный ключ для API. Ключ чем надежнее, тем лучше, он будет использоваться для передачи данных, чтобы никто не смог влезть в ваш индекс. Это поле по-умолчанию уже содержит данные — они случайно сгенерированы, вы можете обновить страницу чтобы получить новый ключ.
После того как вы заполните почту и ключ, а также поставите галчку что хотите
зарегистрироваться, для вас будет создан аккаунт, индекс, а также все базовые
настройки для его работы, и посещать сайт indexisto даже не понадобиться.
Затем у вас откроются все настройки модуля, как ими пользоваться написано после
авторизации.
Авторизация
Вариант для тех, кто уже имеет аккаунт на Indexisto. В таком случае необходимо проделать операции, чтобы поиск заработал.
Самый простой, если вы ранее уже производили настройку для API, то указать секрет и id поискового индекса, а если не делали, то следуйте инструкциям чтобы получить два этих параметра.
Всё, жмем подтвердить и авторизация готова.
Если у вас уже есть индекс то вам достаточно проделать пункт 11.
Настройка модуля
После того как вы зарегистрировались или авторизовались перед вам откроются настройки модуля.
Настройки индекса
В первой вкладке вы можете заменить свой секрет и index id, а также отключить
индексацию сайта.
Если вы выключите индексацию, то ничего не попадёт в индекс, не важно что
настроите дальше, это глобальный запрет/разрешение на отсылку данных.
Настройки контента
Данная вкладка отвечает за то, какие типы содержимого можно индексировать, а также что именно от них попадёт в индекс.
Настройки очень просты. Для каждого типа содержимого на сайте вы можете задать используя токены следующие значения:
- Блокировка на индексацию. Если поставить галочку то материалы данного типа содержимого не попадут в индекс, никак, вообще. Старые, что попали до блокировки, останутся в индексе неизменными, но не будут обновляться.
- Заголовок содержимого — тут я думаю всё ясно.
- Содержимое (body) — тут нужно указать токен с основным содержанием ноды, т.е. с текстовой частью.
- Общее содержимое (summary content) — это совокупность всех конентентных данных ноды. Сюда вы должны добавить непосредственно само тело (body), а также доп поля, например: цена, теги и т.д. Но, например, картинки и файлы добавлять не стоит, они же не контент.
- Изображение — тут нужно указать поле с изображением. Если его нету можно оставить токен по-умолчанию, либо просто оставить поле пустым. В таком случае в момент отправки данных модуль попробует найти картинку в body.
- Теги — тут теги для материала, вроде тоже всё ясно.
Подобные настройки есть для каждого типа содержимого. При необходимости вы можете изменить их.
Стиль поиска
В этой вкладке можно настроить текст, который будет отображаться в поле поиска по-умолчанию, пока пользователь не начнет вводить свой запрос.
Также можно настроить стиль отображения самого поля. Это просто inline-css, но он обязателен, и пустым быть не должен.
Массовые операции
Последняя вкладка позволяет проделывать массовые операции с материалами, добавление/обновление или удаление их из индекса.
Тут я тоже задерживаться не буду, всё предельно понятно.
Что делать после настройки модуля
После того как вы всё настроите, после добавления/обновления и удаления содержимого на сайте, будут отсылаться соответствующие запросы (если они не запрещены во вкладке содержимого).
Если у вас есть уже содержимое, просто массово добавьте материалы в индекс и посмотрите что получиться. Если всё сделали верно, то в админке indexisto в разделе Index Explorer должны появиться данные.
Теперь добавьте блок Indexisto на страничку и проверьте, у вас должно искать по проиндексированным материалам. На этом всё.
Что можно сделать после настройки
Ну во-первых вы можете на официальном сайте настроить оформление поиска и прочие примочки, например дележку по типам содержимого.
Делим в выдаче контент по типу содержимого.
Изначально в выдаче у вас будут все материалы идти скопом в одном разделе, но indexisto позволяет нам поделить их на разделы. Вся работа уже сделано на уровне модуля, вам лишь нужно:
- Зайти в настройки indexisto -> Search Box -> Widgets.
- Нажимаем Add new widget.
- Указываем название (на англ.), справа жмём на глубос, в поле RU пишем русское название, а в разделе: Select types for the query вы выбираете тип содержимого который будет находиться в этой группе.
Вот как у меня сделан раздел “Блог”:
То же самое я проделал с комментариями, в резлуьтате чего теперь у меня они логически разделены в выдаче.
P.s.
Модуль находится в разработке, стабильная версия появится не раньше января 2014 года.
От этого поста мы хотим услышать предложения/пожелания к модулю, а также самому сервису indexisto, сообщайте обо всех найденных ошибках и путях их воспроизведения. Буду фиксить по мере возможности.
Комментарии
Это админка indexisto.com
Это же второй Bootstrap - https://drupal.org/project/bootstrap
Где вообще можно найти нормальные темы для админки, на drupal.org вообще с темами туго...
Меня стандартная устраивает на все 100. А так, на том же орге, в гугле. Темы для админки есть.
На моем сайте после установки модуля и переходе в настройки такая ошибка появляется: Fatal error: Call to undefined function drupal_random_key() in /home/xxx/site.ru/www/sites/all/modules/indexisto/indexisto.admin.inc on line 333
Подсажешь, что это значит? =)
Благодарю!
drupal_random_key() -- в модуле используется для генерации "секретного ключа" - это поле под E-Mail. Он генерируется стандартным друполовским функционалом (вышеуказанной функцией), которая есть даже в Drupal 6. Почему вылетает такой еррор? Функции такой нету в вашей инсталяции друпала. Обновите ядро, возможно какие-то файлы не догрузились.
В принципе файл, в котором находится данная функция отвечает за загрузку друпала, маловероятно что он отсутствует. Просто обновите ядро, возможно поможет. Если нет, пишите версию Drupal и какие модули в комплекте, не хукалось ли ядро и т.д.
Благодарю! =)
Ядро версии 7.17, сейчас обновлюсь и отпишу, что вышло =)
Обновился до версии 7.25 и модуль заработал! Благодарю! =)
Очень многообещающий функционал!
Уже начал тестировать
А как насчёт масштабирования для мобильных устройств?
Оно выполнено на стороне кода Indexisto. Проще говоря, оно из коробки.
Вы можете зайти к ним и посмотреть как демо выглядит на вашем телефоне, также будет выглядить и когда вы встроите на свой сайт. Если же вы сделаете своё оформление, то тут уже конечно придется самому учитывать моменты под мобильные устройства и планшеты.
Да, всё очень прилично, хотя окошко с результатами немного не вписывается в телефон
зато поиск работает с опережением, в отличие от гугловского
я что-то не заметил переключение упорядочивания - по умолчанию стоит по релевантности
а если скажем по дате - где это выставляется?
и ещё - как сделать чтобы после поиска набранные слова автоматически убирались?
да, вот мой сайт, если что:
http://noty-naputi.info
сейчас ищу примочку чтобы листать ноды вперед-назад по заголовкам как в Глоссарии (не по ID)
если что найдётся, буду благодарен
Фасеты, ранжиование и т.д. настраиваются в админке indexisto, все необходимые данные модуль предает.
и ещё - как сделать чтобы после поиска набранные слова автоматически убирались?
Не знаю, скорее всего это не возможно, но если и возможно то на стороне опять же, самого indexisto.
Я думаю вам лучше обратиться уже непосредственно к ним, они помогут настроить. Со стороны модуля я это делать не могу. А фасеты в их админке не настраивал, поэтому тоже помочь не могу.
Как попасть на автоматически сгенерированный акаунт?
логин понятно - это емейл
а пароль?
Пароль - секретный ключ, тот что был сгенерирован автоматически в поле под почтой, либо тот что вы указали (если заменили на свой).
Спасибо. В принципе, всё работает очень даже хорошо. Уже связывался с производителями насчёт деталей - должен заметить, что сервиз у них тоже прекрасный. Хоть по чату, хоть по емейлу.
Большое спасибо за эту тему на блоге!
Делаю как описано.
В тестовой форме (на сайте индексисто под потолком) все ищет отлично.
В форме на сайте нифига не ищет.
Какая может быть причина?
Проверьте -dev версию модуля. Там одна ошибка исправлена, вполне вероятно исправит проблему. Отпишитесь, помогло или нет.
сделал через верхнюю опцию (регисррация) с дев модулем - работает ок.
Сервис помер? Скрипты и админка отдаёт 502 ошибку?
Indexisto всё.
А что, сервис Indexisto загнулся? Что-то ни чего неработает.
Можешь подкинуть тему админки которая на скринах?