Marklogic | NodeJS API facet通过地理位置查询

时间:2015-06-04 13:40:45

标签: node.js marklogic

所以,我有一个像

这样的结构
{
  city: "City",
  geolocation:
    {
      lat: 55,
      lng:55
    }
}

我希望通过地理位置来计算我返回城市的数量,但我不能通过地理定位来实现工作。我创建了一个地理空间元素索引,地理空间元素对索引,并为查询我尝试了以下内容:

qb.facet("count", qb.property("geolocation"))

qb.facet("count", qb.geoPropertyPair("geolocation", "lat", "lng"))

qb.facet("count", qb.geoProperty("geolocation"))

qb.facet("count", qb.geoElement("geolocation"))

并且所有这些我的facet查询都是空的或不存在的。我做错了什么?

1 个答案:

答案 0 :(得分:3)

我能够重现这个错误。虽然对JSON文档的地理空间查询有效,但JSON文档上的地理空间方面在REST API中无效。

我能看到的唯一解决方法是编写一个自定义约束,在XQuery中执行cts:geospatial-boxes()或在JavaScript中执行cts.geospatialBoxes(),在服务器上安装模块,并参考自定义约束。查询。有关更多信息,请参阅:

http://docs.marklogic.com/guide/search-dev/search-api#id_49750

http://docs.marklogic.com/jsdoc/config.query.custom.html

http://docs.marklogic.com/cts.box

http://docs.marklogic.com/cts:box