酒店Schema结构化数据:核心模型与最佳实践指南
2026/1/261,960 字阅读 5 分钟
BLUF 摘要
本文介绍利用Schema.org词汇对酒店及各类住宿信息进行语义标注的基础知识与核心建模方法,涵盖住宿业务、住宿单元等关键实体类型。
# 使用 Schema.org 标记酒店与住宿信息
## Using Schema.org for Hotels and Accommodations
**注意**:本文参考了 [Schema.org](https://schema.org/) 的开发版本。有关我们开发流程的详细信息,请参阅[我们的工作方式](https://schema.org/docs/howwework.html)。
本页提供了使用 Schema.org 词汇表对酒店及各类住宿信息进行语义标注的基础知识和最佳实践。如需功能请求或贡献代码,请使用 [GitHub 仓库](https://github.com/schemaorg/schemaorg)。
另请参阅:[致谢](https://schema.org/docs/hotels.html#acks)
## 概述
## Overview
使用 Schema.org 为网络上的酒店相关信息建模时,三个核心实体类型构成了基础:
* **一个 [住宿业务](https://schema.org/LodgingBusiness)**:这代表住宿场所本身,例如酒店、青年旅社、度假村或露营地。它是容纳实际租赁单元(如酒店房间)的本地企业和物理场所。一个住宿业务可能包含多栋建筑,但通常构成一个连贯的地点。
* **一个 [住宿单元](https://schema.org/Accommodation)**:这指的是场所内实际可租赁的单元,例如酒店房间、套房、公寓、会议室或露营位。这些是提供租赁的具体对象。
* **一个 [报价](https://schema.org/Offer)**:这模拟了以特定价格和规定条件(例如,入住类型、提前预订要求、条款与条件)租赁住宿单元的商业提议。
在 Schema.org 中,酒店房间的报价遵循与其他任何产品或服务报价相同的模式。然而,`Accommodation` 并不是 `Product` 或 `Service` 的子类。为了使 `Offer` 能够与 `Accommodation` 关联,Schema.org 利用了其**多类型实体(MTE)**功能。
当定义一个由 `LodgingBusiness` 提供的 `Accommodation` 实例时,它被描述为**同时是**特定的住宿类型(例如 `HotelRoom`)**和**一个 `Product`。因此,`Hotel` 为同时被标识为 `Product` 的 `HotelRoom` 创建一个 `Offer`。价格和条款因此是 `Offer` 的属性,而不是 `Hotel` 或 `HotelRoom` 的直接属性。
在不同语法中,MTE 的标记方法很简单:
* **JSON-LD**:
```json
{
"@context": "https://schema.org/",
"@type": ["HotelRoom", "Product"]
}
```
* **JSON-LD**:
```json
{
"@context": "https://schema.org/",
"@type": ["HotelRoom", "Product"]
}
```
对于租赁住宿,必须在 `Offer` 上附加 `businessFunction` 属性,其值为 `LeaseOut`(来自 GoodRelations 本体)。这明确了租赁而非出售的意图,并允许将这些类型重用于房地产列表。
### 基本模型
### Basic Model
下图展示了描述酒店房间及其他住宿报价的核心模式。

* 所有 `Accommodation` 类型都是 `Place` 的子类。要将它们用作 `Offer` 的主体,请使用 MTE 技术(同时分配一个 `Accommodation` 类型和 `Product`)。
* 住宿单元与其业务之间的关系通过以下方式表示:
* `containedInPlace`(从房间到业务)或 `containsPlace`(从业务到房间)。
* 报价与房间之间的关系通过以下方式表示:
* `offers`(从房间产品到报价)或 `itemOffered`(从报价到房间产品)。
* 住宿业务与其报价之间的关系通过以下方式表示:
* `makesOffer`(从业务到报价)或 `offeredBy`(从报价到业务)。
* 对于包含不仅仅是房间(例如餐食)或跨越多个夜晚的报价,请使用 `includesObject` 属性以及一个或多个 `TypeAndQuantityNode` 对象。
### 住宿业务类型
### Types of Lodging Businesses
Schema.org 目前为以下类型的住宿业务提供了明确的类型:
* `BedAndBreakfast`
* `BedAndBreakfast`
* `Campground`
* `Campground`
* `Hostel`
* `Hostel`
* `Hotel`
* `Hotel`
* `Motel`
* `Motel`
* `Resort`
* `Resort`
此列表可能会扩展。对于其他形式,请使用通用的 `LodgingBusiness` 类型。`additionalType` 属性可以链接到外部标识符(例如,来自受控词表)以指定确切类型。
### 住宿单元类型
### Types of Accommodations
对于特定类型的住宿单元,有以下类型可用:
* `Apartment`
* `Apartment`
* `CampingPitch`
* `CampingPitch`
* `House`
* `House`
* `Suite`
* `Suite`
此列表也可能扩展。对于其他类型,请使用通用的 `Accommodation` 类型,可以选择使用 `additionalType` 来提高精确度。
## 基础示例
## Minimal Example
最基本的形式是,您可以使用名称、描述、联系方式、照片、星级和价格范围等基本信息来标记酒店,而无需详细说明单个房间报价。
**Microdata Example:**
```html
Star rating:
****
Room rates: $100 - $240
```
**Microdata 示例:**
```html
星级:
****
房价: $100 - $240
```
有关完整属性列表,请参阅 [`Hotel`](https://schema.org/Hotel) 类型页面。此处描述的模式同样适用于其他住宿业务(例如 `Campground`、`MeetingRoom`),只需替换相应的类型即可。
## 酒店详细信息标记
## Information about the Hotel
如果您的网站提供更丰富的详细信息,可以使用许多额外的 Schema.org 属性。以下是关键领域的重点介绍。
### 地理位置
### Geo Position
在 `geo` 属性中使用 `GeoCoordinates` 来指定纬度和经度。
```html
```
### 电话与传真
### Telephone and Fax
使用 `telephone` 和 `faxNumber` 属性。
```html
Phone: +43 512 8000-0
Fax: +43 512 8000-99
```
### 星级评分
### Star Rating
星级评分表示住宿质量。可以是简单的数值,也可以包含评级机构信息。
#### 简单标记
#### Simple
直接使用 `starRating` 标记数值。
```html
Star rating:
****
```
#### 高级标记:评分类型
#### Advanced: Type of Star Rating
使用内嵌 `Rating` 的 `author` 属性来指定颁发机构(例如 DEHOGA、HOTREC)。
```html
Star rating:
DEHOGA
****
```
**注意:** 官方星级评分使用 `starRating`。客户评论和综合评分应分别使用 `review`/`Review` 和 `aggregateRating`/`AggregateRating`。
### 照片与商标
### Photos and Logo
使用 `photo` 表示物业图片,使用 `logo` 表示企业商标。
```html
```
### 地图
### Map
使用 `hasMap` 属性链接到地图。
```html
Click here for a map.
```
### 营业时间(接待处)
### Opening Hours (Reception)
使用 `openingHours` 或结构更清晰的 `openingHoursSpecification` 来指示接待处营业时间。
```html
Reception opening hours:
Mon-Fri 07.00-23.00
Saturdays 08.00-23.00
Sundays 08.00-12.00
```
### 房间数量
### Number of Rooms
使用 `numberOfRooms`。对于简单计数,使用数字。对于细分(例如,单人间与双人间),使用 `QuantitativeValue`。
**Simple:**
```html
60 rooms.
```
**Detailed:**
```html
联系编辑 →
ACME Hotel Innsbruck
A beautifully located business hotel right in the heart of the alps...
Technikerstrasse 21
6020
Innsbruck, Tyrol, Austria
Phone: +43 512 8000-0
Star rating:
****
Room rates: $100 - $240
ACME Hotel Innsbruck
一家位于阿尔卑斯山中心的商务酒店,位置优越...
Technikerstrasse 21
6020
Innsbruck, Tyrol, Austria
电话: +43 512 8000-0
星级:
****
房价: $100 - $240
```
### 地图
### Map
使用 `hasMap` 属性链接到地图。
```html
Click here for a map.
```
### 营业时间(接待处)
### Opening Hours (Reception)
使用 `openingHours` 或结构更清晰的 `openingHoursSpecification` 来指示接待处营业时间。
```html
Reception opening hours:
Mon-Fri 07.00-23.00
Saturdays 08.00-23.00
Sundays 08.00-12.00
```
### 房间数量
### Number of Rooms
使用 `numberOfRooms`。对于简单计数,使用数字。对于细分(例如,单人间与双人间),使用 `QuantitativeValue`。
**Simple:**
```html
60 rooms.
```
**Detailed:**
```html
Roger深圳
本文由 Roger 审核,最后更新于 2026年5月3日
标签
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容仅供参考,请以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。 也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



