对搜索结果进行过滤和排序

概览

为帮助用户找到您网站上的正确网页,可编程搜索引擎提供了结构化搜索运算符,可让您根据网页中发现的结构化数据或与您网站上的图片相关联的元数据,深入查看搜索结果的子集。

对于图片搜索,Google 会同时依赖网页上的结构化数据和在抓取您的网站时发现的图片元数据。我们建议所有网站站长熟悉我们的图片发布指南

  1. 网页搜索 <ph type="x-smartling-placeholder">
  2. 图片搜索 <ph type="x-smartling-placeholder">
  3. 可编程搜索元素中的结构化搜索

网页搜索

与文本(即自由形式的字词序列)不同,结构化数据 逻辑上组织为一组具有一组属性的对象。 可编程搜索引擎会提取各种结构化数据供结构化数据使用 搜索运算符,包括日期、作者、评分和价格;这是 可在自定义代码段中使用的相同数据。在 此外,可编程搜索引擎支持以下任意格式的结构化数据:

  • PageMap: PageMap 将结构化数据明确表示为 DataObject 以及属性和值,编码为嵌入的 XML 块 网页。可编程搜索引擎生成所有格式正确的 PageMap 数据 适用于结构化搜索运算符;它还可以在 自定义代码段
  • meta 个标签 Google 从meta中提取所选内容 格式为 <meta name="NAME" content="VALUE">。一个 meta 标记,形式为 <meta name="pubdate" content="20100101">可以是 与以下形式的搜索运算符搭配使用: &sort=metatags-pubdate
  • 网页日期 Google 会根据网址、标题、署名日期来估算网页的日期 和其他功能此日期可以和 特殊结构化数据类型 date,如 &sort=date
  • 丰富网页摘要数据 Google 还会从公共标准中提取一部分数据,例如: 用于可编程搜索引擎的结构化数据运算符。 例如,要对带有微格式标记的网页进行排序, 根据评分分级得出 hrecipe 标准,使用 &sort=recipe-ratingstars

详细了解如何提供结构化数据

如果您的网页包含结构化数据,您可以将可编程搜索引擎的 结构化搜索运算符,用于将搜索限制在具有特定 数据值严格按数值排序,偏向于特定值 而不是排序,甚至限制在给定的数值范围。

可编程搜索引擎支持在结构化数据中使用以下搜索运算符:

返回页首

按属性过滤

通过按属性过滤,您可以选择三种结果:

  • 包含特定附加 DataObject 的结果,例如评价
  • 包含具有给定字段的 DataObject 的结果,例如 包含价格范围的评价。
  • 包含特定字段值(例如 5 星评价。

要按属性过滤,请添加 more:pagemap:TYPE-NAME:VALUE 运算符添加到搜索查询中。这样可以将搜索结果限制为 包含与相应类型、名称和值完全匹配的结构化数据。(可编程搜索引擎 最多可为每个网页转换 200 个属性,从 pagemap 数据开始, (后跟 JSON-LD、微格式、元标记、RDFa 和微数据)。属性不应超过 超过 128 个字符。 您可以通过省略 VALUE 来泛化此运算符,以便进行匹配 已命名字段的所有实例,或省略 -NAME:VALUE 来匹配给定类型的所有对象。

要了解如何使用结构化数据构建完整的运算符, 回想一下我们之前使用的示例:

[halloween more:pagemap:document-author:lisamorton]

more:pagemap:document-author:lisamorton进行细分 更详细地了解受限情况 可编程搜索引擎会使用 more: 运算符 优化标签的 pagemap: 部分 可让我们根据编入索引的 PageMap 中的特定属性优化结果, 以及运算符的其余元素 document-authorlisamorton - 指定限制演练的内容 回想一下示例中的 PageMap:

<PageMap>
  <DataObject type="document">
    <Attribute name="title">The Five Scariest Traditional Halloween Stories</Attribute>
    <Attribute name="author">lisamorton</Attribute>
  </DataObject>
</PageMap>

运算符的 document-author: 限定符告诉我们 类型为 document 且具有名为 author 的属性的 DataObject。 此结构化数据键后跟值 lisamorton, 该值必须与要在 搜索包含此限制的内容。

more:p:document-author:lisamorton

按属性过滤时,您可以创建更复杂的过滤器( 命令)。例如,您可以添加以下代码 网址的 PageMap:

    <pagemap>
      <DataObject type="document">
        <Attribute name="keywords">horror</Attribute>
        <Attribute name="keywords">fiction</Attribute>
        <Attribute name="keywords">Irish</Attribute>
      </DataObject>
    </pagemap>
  </page>

如需检索“爱尔兰语和小说”查询的结果,请使用以下命令:

more:p:document-keywords:irish*fiction

效果等同于 more:pagemap:document-keywords:Irish more:pagemap:document-keywords:fiction

如需检索“爱尔兰语 AND(小说 OR 恐怖)”的结果,请使用以下代码:

more:p:document-keywords:irish*fiction,irish*horror

返回页首

按分支过滤

按分支过滤按属性过滤的变体,可用于 JSON-LD、微格式和 RDFa。这是按属性过滤的唯一类型 适用于 JSON-LD 结构化数据。

如果结构化数据不包含树,或者仅包含没有树 那么限制与按属性过滤相同。 但是,具有子项的树具有包含以下内容的限制: type-name,用于从根节点到叶节点的每个节点;因此,这是一种树,其中:

  • 根类型是事件
  • 将子级命名为 rating
  • 该子级的类型为 AggregateRating
  • 该子级具有一个名为 ratingCount 的属性,名为 22
。 将生成以下限制: 针对分支的 more:pagemap:event-rating-aggregaterating-ratingcount:22 结尾。

将“按属性过滤”或“按其他特征过滤”与“其他特征”结合使用

您可以使用此开放式语法展开细目,查看在 在网站上的文档上使用 PageMap;也可以使用同样的语法 处理几乎所有其他类型的结构化数据 ,其中仅排除了 估算的网页日期。您可以 还会将这些 more:pagemap: 运算符与 <ph type="x-smartling-placeholder"></ph> 优化标签 隐藏的查询元素 按对您的应用重要的属性过滤结果, 因此最终用户不必直接输入这些限制限定符。

您还可以省略搜索运算符的某些部分。在上面的示例中, 请注意,PageMap 指定了 document 类型的 DataObject, 是 author 类型的属性。但并非网站上的每个网页 且并非所有文档都有注明出处的作者。如果您 使用 more:pagemap:document-author 形式的运算符, 返回的结果将包含具有 author 属性的所有网页 document DataObject 中,无论 属性是。同样,more:pagemap:document 将返回 包含具有 document 类型 DataObject 的 PageMap 的所有结果, 无论该 DataObject 包含什么字段。

对限制的文本值进行标记化处理

包含空格、标点或特殊字符的属性值 几乎总是会拆分成单独的词元;例如,一个属性 “Programmable Search Engine@google”的值将拆分为三个单独的词元, “custom”、“search”和“google”。这允许在单个字词上搜索 嵌入大量字词和标点符号中,例如生产 说明。(可编程搜索引擎会针对每个字符串最多提取 10 个词元,因此如果您的 属性值包含的字词数超过 10 个,并非所有字词都可进行限制 results.) 例如,以下 PageMap 包含 可编程搜索引擎

<PageMap>
  <DataObject type="product">
    <Attribute name="description">Programmable Search Engine provides customized search engines</Attribute>
  </DataObject>
</PageMap>

以下限制将查找包含 product-description 的所有网页 “search”的相关属性:

[more:pagemap:product-description:search]

有关标记化文本值的更多规则:

  • 为限制文本值,系统会将值转换为小写形式
  • 对于长度不超过 6 个词元的字符串,系统会针对整个字符串生成额外的限制, 替换为 _ 替换空白值,如 please_attend
  • 系统不会为停止词a因此对搜索的用处不大。因此, 文本值:“要点”将为 mainpoint、 和 the_main_point,但不会为 the 生成限制。
  • 系统只会使用文本值中的前十个字词来构成限制。
  • 未被视为分隔符的标点字符将转换为下划线, _

使用多个限制深入了解令牌化值

如需更深入地探究,您可以添加其他限制:例如 要仅获得描述搜索引擎产品的网页,请添加以下限制:

[more:pagemap:product-description:search more:pagemap:product-description:engine]

more:pagemap: 限制的顺序并不重要; 词元从属性值中提取到无序集合中。

这些限制 默认通过“AND”组合起来但您也可以将它们与 OR 运算符 以获取符合任一限制的结果。例如,以下是 与搜索或游戏相关内容匹配:

[more:pagemap:product-description:search OR more:pagemap:product-description:game]

标记化的一个例外是网址属性值。开始时间 来自于网址的词元具有边际作用, 属性值为有效网址。

在某些情况下(例如,当短词元经常一起出现时), 可编程搜索引擎可能会将二者结合起来,形成超级令牌。例如,如果 “总裁”和“Obama”经常彼此相邻显示,可编程搜索引擎 创建超级令牌“pident_obama”。因此,[more:pagemap:leaders-name:president_obama] 将返回与 [more:pagemap:leaders-name:president AND more:pagemap:leaders-name:obama] 相同的结果。

基于标点符号进行标记化的另一个主要例外情况是 正斜线“/”。属性值 格式为“NUMBER/NUMBER”或“NUMBER/NUMBER/NUMBER”被视为 单个连续词元;例如 “3.5/5.0”和“09/23/2006” 视为单个词元。例如, 搜索值为“2006/09/23”的属性,请使用限制:

[more:pagemap:birth-date:2006/09/23]

仅当正斜线介于 不含空格的数字;正斜线和数字之间的空格将 这会导致系统创建单独的令牌。此外, 斜杠必须完全匹配;“按属性过滤”运算符的作用 不会将这些值解读为分数或日期。可编程搜索引擎 其他结构化搜索运算符,例如 Sort by Attribute(按属性排序)和 限定范围,务必解释 以分数和日期表示这些数字请参阅 为以下各项提供结构化数据: 。

返回页首

限制使用 JSON-LD

JSON-LD 是一种功能强大的标准结构化数据格式。 这些数据会采用 JSON 格式,并放置在 包含 type="application/ld+json"<script> 标记。

以下是包含一些简单的 JSON-LD 的极少量 HTML:

<script type="application/ld+json">
      {
        "@id": "http://event.example.com/events/presenting-foo",
        "@type": "http://schema.org/AggregateRating",
        "http://schema.org/ratingCount": "22",
        "http://schema.org/ratingValue": "4.4",
        "http://schema.org/itemReviewed": {
          "@type": "http://schema.org/Event",
          "http://schema.org/description": "Please attend.",
          "http://schema.org/name": "Presenting Foo",
          "http://schema.org/startdate": "2022-05-24",
          "http://schema.org/location": "Back room"
        }
      }
</script>

它将生成以下限制

  • more:pagemap:aggregaterating-ratingcount:22
  • more:pagemap:aggregaterating-ratingvalue:4.4
  • more:pagemap:aggregaterating-itemreviewed-event-description:please_attend
  • more:pagemap:aggregaterating-itemreviewed-event-description:please
  • more:pagemap:aggregaterating-itemreviewed-event-description:attend
  • more:pagemap:aggregaterating-itemreviewed-event-name:presenting_foo
  • more:pagemap:aggregaterating-itemreviewed-event-name:presenting
  • more:pagemap:aggregaterating-itemreviewed-event-name:foo
  • more:pagemap:aggregaterating-itemreviewed-event-startdate:2022-05-24
  • more:pagemap:aggregaterating-itemreviewed-event-location:back_room
  • more:pagemap:aggregaterating-itemreviewed-event-location:back
  • more:pagemap:aggregaterating-itemreviewed-event-location:room

对于 JSON-LD,我们只针对根路径的整个路径生成限制, 请参阅按分支过滤。 不过,JSON-LD 树的根将叶节点用作 所生成的限制的形式与属性限制相同。此协议中的一些限制 上面的示例由根处的叶节点构成,并采用属性限制 (type-name-value) 格式,例如:more:pagemap:aggregaterating-ratingcount:22

注意:其他结构化数据格式允许字符串长度不超过 128 个字节,但 JSON-LD,所有字符串都被截断为约 50 个字符 - 尽量避免以末尾 字符串中间。这可能会限制生成的词元数量,具体取决于字词长度 。

返回页首

按属性排序

有时,将搜索限制到特定类型的结果还不够; 例如,在搜索餐馆评价时,您可能想 让已评分的餐馆出现在列表顶部。您可以实现这一目标, 可编程搜索引擎的“按属性排序”功能 根据结构化数据属性的值对结果进行排序。 将 &sort=TYPE-NAME:DIRECTION 可编程搜索引擎的请求网址的网址参数。 与结构化搜索一样,按属性排序也取决于结构化数据 您的网页;但与结构化搜索不同,排序要求 字段可解读数字,例如数字和日期。

最简单的方法是,根据项目名称指定结构化数据类型, 数据对象类型 PageMap 中的属性名称,并以如下形式将其添加到请求网址中: &sort=TYPE-NAME。例如,排序依据 网页上的日期,表示网页的数据类型为 date 并将其命名为 sdate,请使用以下语法:

https://www.google.com/cse?cx=000525776413497593842:aooj-2z_jjm&q=comic+con&sort=date-sdate

默认情况下,系统会按降序执行硬排序,即 搜索结果会严格按日期排序 日期(转换为最大数字)排序。 如果要将排序顺序更改为升序,请将 将 :a 添加到字段中(或将 :d 显式附加到 指定降序)。例如,若要优先显示最早的结果, 则可以使用以下形式的限制:

https://www.google.com/cse?cx=000525776413497593842:aooj-2z_jjm&q=comic+con&sort=date-sdate:a

您引擎中的已排序结果会根据这些结果 页面的 PageMap 中针对该 DataObject 和 Attribute 创建的网页。页面 缺少 PageMap、DataObject 类型或对应的可解析值 属性不会经过硬排序。在上面的示例中,网页 不包含 date-sdate 属性的 结果。硬排序不能与按属性自定义调整搭配使用 的功能,但它也可以 按属性过滤限制到范围

返回页首

按属性划分的偏差

有时,您不想排除没有价值的结果; 比如说,您要搜索黎巴嫩美食各种 可能有不同的餐馆可供选择,从纯正的黎巴嫩(相关性最高)到 希腊语(最不相关)。对于这种情况,您可以使用“强”或“弱” 自定义调整,这会强有力地或弱地提升对您的产品来说具有针对性的广告搜索结果, 值,但不会排除缺少该值的结果。您指定了 或在排序方向后附加第二个值,以应用弱偏差: &sort=TYPE-NAME:DIRECTION:STRENGTH, :s(表示强烈偏差)或 :w 表示弱偏差(:h 表示硬偏差) 排序,但添加 :h 是可选的,因为这是默认设置)。 例如,添加强烈偏差可确保 评分为 3 的地中海餐厅的表现会优于评分最差的餐厅 地中海风味餐厅,但排名不太可能超过 完全匹配黎巴嫩风味餐馆:

https://www.google.com/cse?cx=12345:example&q=lebanese+restaurant&sort=review-rating:d:s

可以使用逗号运算符合并多个自定义调整:

https://www.google.com/cse?cx=12345:example&q=lebanese+restaurant&sort=review-rating:d:s,review-pricerange:d:w

偏差的顺序无关紧要。 但是,强制排序不能与其他任何强制排序结合使用 严格排序。您在列表中指定的最后一个排序运算符 覆盖之前的所有排序和偏差运算符。

返回页首

限制到范围

要包含介于某个范围值之间或者大于或小于某个值的结果, 使用范围限制。范围限制由 :r 指定 附加到属性名称中,后跟 属性值:&sort=TYPE-NAME:r:LOWER:UPPER。 例如,仅包含在 3 月至 4 月之间撰写的评价 2009,您可以指定以下范围限制:

https://www.google.com/cse?cx=12345:example&q=lebanese+restaurant&sort=review-date:r:20090301:20090430

对于“限定范围”运算符,Google 支持数字 日期为浮点数格式 ISO 8601 YYYYMMDD(不带短划线)。

对于 例如,要仅指定 2009 年之前的日期,您可以编写:

https://www.google.com/cse?cx=12345:example&q=lebanese+restaurant&sort=review-date:r::20091231

要仅包含超过 3 星的评分,请使用以下代码:

https://www.google.com/cse?cx=12345:example&q=lebanese+restaurant&sort=rating-stars:r:3.0

范围包含边界值,并可使用英文逗号运算符与 或者使用一种排序或一个或多个偏差标准。注意事项 将范围限制与排序标准和偏差标准结合起来, 导致系统仅对包含该范围内值的项进行排序。例如: 要按照仅对三星或更多星评分项目进行排序,请使用以下代码:

https://www.google.com/cse?cx=12345:example&q=lebanese+restaurant&sort=rating-stars,rating-stars:r:3.0

您可以对一个条件进行排序,并按范围限制另一种条件。 例如,要按照仅对 1 月内 使用以下代码:

https://www.google.com/cse?cx=12345:example&q=lebanese+restaurant&sort=rating-stars,review-date:r:20101001:20101031

图片搜索

如果您为搜索引擎启用图片搜索,Google 会在单独的标签页中显示图片搜索结果。您可以通过使用可编程搜索引擎控制面板或更新 context.xml 文件来启用图片搜索。

Google 图片搜索依据的是 Google 在抓取您的网站时发现的信息。要改进您的图片在搜索结果中(可编程搜索引擎和 Google 网页搜索)中的显示方式,建议您先熟悉 Google 的图片发布指南

按图片属性过滤

与网页搜索一样,图片搜索支持根据 srcalttitle 等属性进行过滤。

返回页首

可编程搜索元素中的结构化搜索

结构化搜索功能也可与 Google 可编程搜索元素。就像查询中表示的运算符一样 或网址参数,则元素中的结构化搜索首先要求 您要用所需的属性来标记您正在搜索的网页 搜索条件;可编程搜索元素的 sort 运算符 在查询中结合使用more:pagemap:运算符 对搜索结果进行适当排序或限制。

例如,加利福尼亚的新闻门户网站 SignOnSanDiego.com 使用 可编程搜索元素,用于在搜索结果中呈现带有照片的近期报道:

为了确保读者不仅看到最相关的新闻,还能及时看到新闻, SignOnSanDiego 使用“按属性分类”属性中的“强”权重目标 最近的发布日期。SignOnSanDiego 实现了以下日期属性 ;SignOnSanDiego 使用的一个示例如下:

<!--
  <PageMap>
    <DataObject type="date">
      <Attribute name="displaydate" value="Wednesday, August 25, 2010"/>
      <Attribute name="sdate" value="20100825"/>
    </DataObject>

    <DataObject type="thumbnail">
      <Attribute name="src" value="http://media.signonsandiego.com/img/photos/2010/08/25/635a63e9-f4a1-45aa-835a-ebee666b82e0news.ap.org_t100.jpg"/>
      <Attribute name="width" value="100"/>
    </DataObject>
  </PageMap>
  -->

要为此字段应用“按属性排序”,请将 sort 选项, 可编程搜索元素,如下所示:

...
<div class="gcse-search" sort_by="date-sdate:d:s"></div>
...

与上述网址 &sort= 参数一样,可编程搜索元素中的排序选项 <div class="gcse-search" sort_by="date-sdate:d:s"></div> 采用组合的属性名称(例如 date-sdate)和几个可选属性, 参数(使用英文冒号分隔)。在这种情况下,SignOnSanDiego 指定了 使用强偏差按 d 降序排序 运算符的 s 变种。如果您没有提供 限定符,默认使用降序方式进行硬排序, 就像使用网址运算符的情况一样。

排序选项还可启用“按范围限制”功能。例如 像 SignOnSanDiego 这样的网站可能会让用户能够搜索文章 发布时间为 2010 年 8 月 25 日至 9 月 9 日。为了实现这一点 您可以将排序选项设为 date-sdate:r:20100825:20100907。这再次使用 属性名称 date-sdate,但仅限于 范围 r,指定值 20100825:20100907。 与网址参数一样,您可以省略 范围。sort

排序选项的另一个强大功能是 属性和按范围限制。您可以将多个运算符组合为 排序选项(以英文逗号分隔)。例如,要合并 SignOnSanDiego 在上述日期限制方面的强烈偏差, 指定 date-sdate:d:s,date-sdate:r:20100825:20100907。这个 特征可以组合不同的属性;例如,影评 网站可能会显示最近 选择 review-rating,release-date:r:20100907: 选项。

如需了解所有支持的属性,请参阅此页面

您还可以将“按属性过滤”与“可编程搜索元素”结合使用。 例如,以我们前面的示例为例, 具有 linked-blog 属性的网页;来创建自定义 仅返回使用以下代码链接的网页的搜索控件 将 more:pagemap:linked-blog:blogspot 运算符注入到 每次查询:

...
<div class="gcse-search" webSearchQueryAddition="more:pagemap:linked-blog:blogspot"></div>
...

此方法相对不灵活,因为它向所有 查询。如需查看其他选项,请参阅相关文档 在 可编程搜索元素

返回页首

探索其他功能

结构化搜索功能是一组功能强大的选项, 可以很好地控制搜索应用 使用自定义属性对搜索结果进行排序和限制 为用户带来便利。结构化搜索也适用于 自定义结果摘要等其他可编程搜索引擎功能。 如需了解详情,请参阅: