我们有一些地理数据,您可以将它们视为地点或地理名称。
我们有近六十万条记录,每条记录都有以下字段:
id name lng lat ....
现在我们想根据这些字段进行搜索并支持模糊搜索,但是使用like
数据库并不是一个好主意。
因此我们尝试Lucene
进行全文搜索,这适用于name
字段查询,但我不知道何时查询并混合name
字段和{{ 1}} lng
个字段在一起。
例如,用户可能想要查询包含关键字的地点" xxx" lat:30,lng 40,距离100米左右。
这是一种地理查询,我认为最好通过postgis或其他方式查询空间数据库,但是`name字段怎么样?
答案 0 :(得分:2)
HGUser, PostgreSQL 和 SQL Server (2008年起 - 2012年最佳)都是满足您要求的绝佳选择。两者都支持全文搜索和空间查询索引(作为单个或组合的WHERE子句)。
确保从纬度/经度坐标构建地理/几何对象,以便从空间索引中受益。
您可以在
的用户手册中阅读有关地理/几何的信息http://www.postgresql.org/files/documentation/pdf/9.3/postgresql-9.3-A4.pdf(第8.8节)
全文将在同一文件的第12章中找到。
您可以在
阅读有关地理/几何的信息http://technet.microsoft.com/en-us/library/ff848797.aspx
的全文索引
答案 1 :(得分:0)
侨, 你有很多选择,而不会触及完整的空间DBMS。 我实际上会调查:
lucene空间 https://www.openshift.com/blogs/free-text-and-spatial-search-with-spatial4j-and-lucene-spatial
SOLR https://cwiki.apache.org/confluence/display/solr/Spatial+Search
ElasticSearch www.elasticsearchtutorial.com/spatial-search-tutorial.html
此致 西蒙。