Перенаправить поиск на страницу результатов Google Search Appliance
У меня есть домашняя страница с кнопкой поиска, которая в настоящее время направляет пользователей на общую страницу результатов Google Search Appliance (GSA), но я хотел бы обернуть результаты в пользовательскую HTML-страницу без использования XSLT.
Я посмотрел в Интернете и услышал, что это можно сделать с помощью JavaScript или сценариев на стороне сервера. Я знаю, что есть решение iFrame тоже; однако это только решение, когда вы используете поле поиска на той же странице iFrame.
Поскольку у меня нет доступа к внутреннему серверу, я бы предпочел сделать это на внешнем интерфейсе, либо в JavaScript, либо в каком-либо другом сценарии. Я не могу найти примеры в документации Google о том, как это сделать.
У кого-нибудь есть примеры того, как это может выглядеть?
2 ответа
Итак, у вас есть несколько вариантов:
- В своем действии формы (то есть, что происходит при отправке поиска) вы можете использовать параметры URL-адреса, чтобы указывать на определенный внешний интерфейс GSA, но не включать параметр proxystylesheet. Затем он вернет вам простой XML, и вы можете делать с ним все, что считаете нужным (содержание этого XML хорошо документировано).
- Исправьте исходную проблему и включите верхний и нижний колонтитулы в XSLT
Имейте в виду, что с № 1 сложнее включить в свои результаты некоторые из лучших функций пользовательского интерфейса GSA, такие как предварительный просмотр документов и динамическая навигация. Если конфликты CSS - ваша единственная проблема с #2, я бы лично потратил свое время, пытаясь их исправить.
Вы упомянули, что у вас нет доступа к бэкэнд-серверу, но можете ли вы сделать обратный прокси на своем веб-сервере? (т.е. http://yoursite/search -> http://yourgsa/search
)
использование прокси и некоторого javascript - лучший способ. Вы не можете по-настоящему использовать XML/jSON из GSA через Javascript любым другим способом через сайт.
Существует таблица стилей, которая преобразует результаты в json / jsonp:
https://github.com/steveathon/GSJSON
Но GSA не испускает все заголовки, которые делают эту работу хорошо.