首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr SpatialRecursivePrefixTreeFieldType和MySQL DIH

Solr SpatialRecursivePrefixTreeFieldType和MySQL DIH
EN

Stack Overflow用户
提问于 2013-11-14 05:05:26
回答 1查看 493关注 0票数 2

我已经设置了Solr 4.3.0,并且我正在尝试将SpatialRecursivePrefixTreeFieldType用于空间字段。数据来自MySQL几何字段,SQL查询使用AsText()返回该字段的数据。基本查询如下所示:

SELECT AsText(data_geo) as data_geo FROM table;

在schema.xml中,data_geo字段定义为:

代码语言:javascript
复制
<field name="data_geo" type="location_rpt" indexed="true" stored="true" 
    multiValued="false" />`

<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" 
    spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
    geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees" />

当我执行一个基本的非地理过滤查询时,响应如下所示:

代码语言:javascript
复制
{
  "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
    "indent": "true",
    "q": "*:*",
    "_": "1384375755970",
    "wt": "json"
    }
  },
  "response": {
    "numFound": 1,
    "start": 0,
    "docs": [
      {
        "date_modified": "2013-11-13T16:53:57Z",
        "id": "165733_0_1",
        "data_geo": "POINT(43.87910249999999 -103.4590667)",
        "_version_": 1451618631810023400
      }
    ]
  }
}

添加{!geofilt}会消除所有结果,即使上面的点距离我要过滤的点不到10公里:

代码语言:javascript
复制
{
  "responseHeader": {
    "status": 0,
    "QTime": 1,
    "params": {
      "indent": "true",
      "q": "*:*",
      "_": "1384376149059",
      "wt": "json",
      "fq": "{!geofilt pt=43.879103,-103.459067 sfield=data_geo d=10}"
    }
  },
  "response": {
    "numFound": 0,
    "start": 0,
    "docs": []
  }
}

有人知道这是怎么回事吗?我不知道问题出在索引端还是查询端;我找不到任何关于将MySQL与Solr DataImportHandler和新SpatialRecursivePrefixTreeFieldType一起使用的文档。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-11-14 15:51:45

简单:问题是你的数据的纬度和经度是颠倒的。如果您选择WKT格式,那么它的顺序是"POINT(X,Y)“。如果你愿意,你也可以做"Y,X“。我很惊讶Solr (实际上是Spatial4j)没有抱怨你使用了-103的Y值,这显然是越界的。有一个边界检查。错误将是InvalidShapeException“错误的Y值-103.4590667不在边界中...”(然后是边界)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19964321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档