Фильтрация пользовательского поиска Google

Мне предоставили набор (одобренных) требований и уже одобренное решение для внедрения системы пользовательского поиска Google на существующий веб-сайт.

На этом веб-сайте есть следующее:

  • Вакансии

    • Category 1
    • Категория 2
    • Категория 3
  • Нормальные страницы

    • Category 1
    • Категория 2
    • Категория 3

Требование функциональности поиска состоит в том, чтобы люди могли использовать флажки для фильтрации результатов. Итак, если следующее было правдой:

[x] Category 1
[ ] Category 2
[x] Category 3

Тогда не будут отображаться страницы из Категории 2. Однако есть также:

[x] Show jobs only

Как я могу реализовать это с помощью системы пользовательского поиска Google? Я читал о PageMap, об использовании <meta> тегов и т. Д., Но не могу понять, как мне фильтровать результаты на их основе ..?

Я посмотрел здесь: API пользовательского поиска Google - сортировка / фильтр

Однако, похоже, это не отвечает на мои опасения. Я все еще немного потерялся в документации.

Возможно ли такое? Есть ли у кого-нибудь ссылки на более подробные примеры?

У меня была мысль попробовать фильтрацию в памяти ... однако, если Google просто произойдет, чтобы отбросить страницу с 1 заданием из 10 результатов, когда установлен флажок [x] Show jobs only ... тогда пользователь получит только 1 результат на странице.

Я склоняюсь к набору результатов на основе XML с использованием системы пользовательского поиска ... однако, если это необходимо изменить, я открыт для предложений.

Любые советы приветствуются.


person Simon Whitehead    schedule 06.02.2013    source источник
comment
Весь контент управляется специальной CMS на этом конкретном сайте ... так что об использовании XML-файла на самом деле не может быть и речи. В идеале мы могли бы выгружать любую информацию, которая нужна Google, на сами страницы. Однако я хочу отфильтровать результаты XML-ответа ДО того, как я получу XML ... имеет ли это смысл?   -  person Simon Whitehead    schedule 06.02.2013


Ответы (1)


Мне удалось это выяснить ... Только методом проб и ошибок.

Для начала пример элемента PageMap в ответе XML:

<PageMap>
    <DataObject type="metatags">
        <Attribute name="creationdate" value="D:20100902144455+10'00'"/>
        <Attribute name="creator" value="Adobe InDesign CS5 (7.0)"/>
        <Attribute name="moddate" value="D:20100902144510+10'00'"/>
        <Attribute name="producer" value="Adobe PDF Library 9.9"/>
    </DataObject>
</PageMap>

Фильтрация Google будет соответствовать только отдельным словам, разделенным пробелами, специальными символами и т. Д. Итак, если бы я хотел найти «создателя» с «CS5» в нем, я бы использовал эту строку запроса:

?q=My+Search+Text+Here+more:pagemap:metatags-creator:CS5
                                    ^^^^^^^^ ^^^^^^^
                                      type    name

Вышеупомянутые «тип» и «имя» относятся к именам атрибутов элементов DataObject и Attribute. Последняя часть - это слово, по которому нужно выполнить фильтрацию.

Итак, теперь я могу выгрузить следующее на страницу в Категории 1:

<PageMap>
    <DataObject type="metatags">
        <Attribute name="category" value="Category1"/>
    </DataObject>
</PageMap>

Или .. на работу:

<PageMap>
    <DataObject type="metatags">
        <Attribute name="IsJobPage" value="Yes"/>
    </DataObject>
</PageMap>

..и используйте такой запрос:

?q=My+Search+Text+Here+more:pagemap:metatags-category:Category1,Category3
?q=My+Search+Text+Here+more:pagemap:metatags-IsJobPage:Yes

В первом примере возвращаются все страницы с именем метатега «category», содержащим значение «Category1» ИЛИ «Category3».

Надеюсь, этот ответ спасет кого-то от рвущихся волос ... как я чуть не сделал.

person Simon Whitehead    schedule 06.02.2013
comment
не могли бы вы сообщить мне, как отредактировать строку запроса? Мы используем ‹gcse: search›, и я не уверен, как включить информацию о метатегах в строку запроса. - person Naresh; 04.09.2013
comment
Ты только что спас меня ... Спасибо! - person Daniel; 30.11.2020