术语连接
编辑术语连接编辑
使用术语连接,可以使用以下属性来增强矢量要素:数据驱动的样式和更丰富的工具提示内容。
以下矢量图层可以使用术语连接
- 已配置的 GeoJSON
- 文档
- EMS 边界
术语连接示例编辑
等值线图层示例使用术语连接,按 Web 日志流量对世界各国进行着色。深色阴影表示 Web 日志流量较多的国家/地区,而浅色阴影表示流量较少的国家/地区。
术语连接的工作原理编辑
术语连接使用共享密钥将矢量要素(左侧源)与 Elasticsearch 术语聚合的结果(右侧源)组合在一起。
等值线示例使用共享密钥(ISO 3166-1 alpha-2 代码)来连接世界各国和 Web 日志流量。ISO 3166-1 alpha-2 代码是一种国际标准,它使用两个字母的国家/地区代码来标识国家/地区。例如,瑞典的 ISO 3166-1 alpha-2 代码为 SE。
左侧源编辑
术语连接的左侧源是Elastic 地图服务 (EMS)世界各国。此源的矢量要素由 EMS 提供。您也可以使用自己的矢量要素。
在以下示例中,iso2 属性定义了左侧源的共享密钥。
{ geometry: { coordinates: [...], type: "Polygon" }, properties: { name: "Sweden", iso2: "SE" }, type: "Feature" }
右侧源编辑
右侧源使用 Kibana 示例数据集“示例 Web 日志”。在此数据集中,geo.src 字段包含来源国家/地区的 ISO 3166-1 alpha-2 代码。
术语聚合按 geo.src 对示例 Web 日志文档进行分组,并计算每个术语的指标。
METRICS 配置定义了两个指标聚合
- 术语存储桶中所有文档的计数。
- 术语存储桶中所有文档的“字节”字段的平均值。
右侧源不提供单个文档,而是提供来自术语聚合的指标。指标是根据以下示例 Web 日志文档计算得出的。
{ bytes: 1837, geo: { src: "SE" }, timestamp: "Feb 28, 2019 @ 07:23:08.754" }, { bytes: 971, geo: { src: "SE" }, timestamp: "Feb 27, 2019 @ 08:10:45.205" }, { bytes: 4277, geo: { src: "SE" }, timestamp: "Feb 21, 2019 @ 05:24:33.945" }, { bytes: 5624, geo: { src: "SE" }, timestamp: "Feb 21, 2019 @ 04:57:05.921" }
术语聚合为每个唯一的 geo.src 值创建一个存储桶。将为存储桶中的所有文档计算指标。
以下显示了一个示例术语聚合响应。请注意 key 属性,它定义了右侧源的共享密钥。
{ aggregations: { join: { buckets: [ { doc_count: 4, key: "SE", avg_of_bytes: { value: 3177.25 } }, ... ] } } }
使用右侧源的指标来增强左侧源编辑
连接会将每个术语聚合存储桶的指标添加到具有相应 ISO 3166-1 alpha-2 代码的世界国家/地区要素中。没有相应术语聚合存储桶的要素在地图上不可见。
世界国家/地区要素现在有两个附加属性
- 源自该世界国家/地区的 Web 日志流量计数
- 源自该世界国家/地区的 Web 日志流量的平均字节数
等值线示例使用 Web 日志流量计数来按 Web 日志流量对国家/地区进行符号化。