【问题标题】:Fulltext search together with spatial query全文搜索与空间查询
【发布时间】:2014-05-01 07:23:38
【问题描述】:

我们有一些地理数据,您可以将它们视为地点或地名。

我们有将近六十万条记录,每条记录都有以下字段:

id name lng lat  ....

现在我们要根据这个字段进行搜索并支持模糊搜索,但是使用like by database 不是一个好主意。

所以我们尝试Lucene 进行全文搜索,这对于name 字段查询很有效,但我不知道何时查询并将name 字段和lng lat 字段混合在一起.

例如,用户可能想要查询包含关键字“xxx”的地点,该地点包含某个点周围,lat:30,lng 40,距离为 100 米。

这是一种地理查询,我认为最好通过postgis之类的空间数据库查询,但是`name字段呢?

【问题讨论】:

  • 您使用的是什么 DBMS?
  • 我们现在使用access,但是我们打算postgresql。

标签: geospatial geo spatial-query


【解决方案1】:

HGUser、PostgreSQLSQL Server(2008 年以后 - 2012 年最好)都是满足您要求的绝佳选择。两者都支持 FULL TEXT 搜索和 Spatial 带有 Indexing 的查询(作为单数或组合的 WHERE 子句)。

只需确保从您的纬度/经度坐标构建一个地理/几何对象,以便从空间索引中受益。

对于 PostgreSQL

您可以在用户手册中阅读有关地理/几何的信息

http://www.postgresql.org/files/documentation/pdf/9.3/postgresql-9.3-A4.pdf(第 8.8 节)

全文将在同一文档的第 12 章中找到。

对于 SQL Server

您可以在

阅读有关地理/几何的信息

http://technet.microsoft.com/en-us/library/ff848797.aspx

全文索引在

http://technet.microsoft.com/en-us/library/ms142571.aspx

【讨论】:

  • 与 Lucene 相比,PostgreSQL 的 FULL TEXT 怎么样?
  • @hguser 老实说,我对 lucene 的了解还不够,无法提供好的建议。长期以来,我的偏好一直是 SQL Server,但 PostgreSQL 拥有经过验证的快速优雅的 Spatial 模型,不容小觑。
  • 好的,我试试postgresql,谢谢。 :)
【解决方案2】:

Ciao, 您有很多选择,而无需触及成熟的空间 DBMS。 我实际上会调查:

问候, 西蒙娜。

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 2023-03-16
    • 2014-11-12
    • 2023-04-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多