MarkLogic 地理空间表示和后续搜索

MarkLogic Geospatial representation and subsequent search

我有一个包含 property/value 的平面文件:"Geolocation": "(32.15672444830, -110.877085494)"。为了适应 MarkLogic 地理空间搜索,我认为 "Geolocation" 需要进行转换并符合特定格式。我可以知道那种格式是什么样的吗?

您有地理空间点索引和地理空间区域索引。点索引要么采用 cts.point 的字符串化版本,要么您可以分别指示纬度和经度。可以直接在JSON里面使用cts.point得到字符串表示:

let res = {
  location: cts.point(1,2)
};

res;

区域索引只允许 cts.point、cts.linestring、cts.circle、cts.box 和 cts.polygon 的字符串化版本。这些也可以直接嵌入 JSON 中。另请参阅地理空间构造器帮助页面:

https://docs.marklogic.com/cts/geospatial-constructors

HTH!

我的结果表明 "Geolocation": "(32.15672444830, -110.877085494)" 是无效表示。如果属性是通过API转换和符合的,那么Geospatial查询returns预期结果:

{
"State": "IL", 
"City": "Chicago", 
"indexCancer": "5", 
"Geolocation": [
41.84, 
-87.69
]
}

{
"State": "PA", 
"City": "Allentown", 
"indexCancer": "6", 
"Geolocation": "40.61, -75.48"
}

{
"State": "MA", 
"City": "Boston", 
"indexCancer": "4.8", 
"Geolocation": [
42.32, 
-71.10
]
}