我获得了一系列(已批准的)要求和已批准的解决方案,可将Google自定义搜索功能应用到现有网站。
本网站有以下内容:
工作
正常页面
搜索功能的要求是人们可以使用CheckBoxes来过滤结果。如果以下是真的:
[x] Category 1
[ ] Category 2
[x] Category 3
然后,类别2中不会显示任何页面。但是,还有:
[x] Show jobs only
我如何通过Google自定义搜索实现此功能?我已经阅读了PageMap
,使用<meta>
标签等等。但是我无法理解我是如何基于这些来过滤结果的。?
我看了一眼:Google custom search API - sorting / filter
但它似乎没有回答我的担忧。我在文档中仍然有点迷失。
这种事情有可能吗?有没有人有任何更完整的例子链接?
我考虑过尝试内存过滤..但是如果Google只是发生在10个结果中丢弃1个Job页面,而[x] Show jobs only
复选框被选中..那么用户只能在页面上获得1个结果。
我倾向于使用自定义搜索引擎的基于XML的结果集。但是如果需要更改我会接受建议。
任何建议表示赞赏。
答案 0 :(得分:6)
我已经设法解决了这个问题......只是通过大量的反复试验。
首先,XML响应中的示例PageMap
元素:
<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” OR “Category3”。
希望这个答案可以帮助人们免受撕裂的伤害......就像我差不多一样。