当前位置: 首页 > 知识库问答 >
问题:

在Cassandra和Elastic Search中存储地理位置详细信息的最佳方式?

东郭宏朗
2023-03-14

这里是Amit,我的问题是我想在Cassandra中存储地理相关的详细信息,并在Elastic search中存储它们的索引,以便更快地访问。我想存储国家名称、国家ISO代码、州/地区、城市名称以及纬度和经度。我可以在Elastic搜索中使用geopoint来存储Lat/long,但无法获得有关Cassandra的任何信息。应该是什么数据类型?所以请建议我在Cassandra/Elastic搜索中存储地理详细信息的方法。

阿米特

共有2个答案

茹照
2023-03-14

如果您只想存储lat-lng,那么@doandyhai提出的解决方案是很好的,但是在查询数据的情况下就没有帮助了。

您应该使用PointType来存储lat-lng,然后可以执行地理空间查询。

//CREATE TABLE
CREATE TABLE test (
id text PRIMARY KEY, 
point 'PointType', 
linestring 'LineStringType');

// Insert Query
INSERT INTO test (id, point, linestring) 
VALUES ('1', 'POINT(5 50)', 'LINESTRING (30 10, 10 30, 40 40)' );

//Find points within a 10 unit radius from point (4, 49):
SELECT * FROM test 
WHERE solr_query= '{ "q":"*:*", "fq":"point:\"IsWithin(BUFFER(POINT(4.0 49.0), 10.0))\"" }';

来源:Datastax Cassandra Docs地理空间查询。

更多参考使用此链接

仅供参考:在触发查询之前,设置Solr Core:https://docs.datastax.com/en/archived/datastax_enterprise/5.0/datastax_enterprise/srch/creatingCoreCustomIndexResources.html

白丁雨
2023-03-14

您可以使用Cassandra创建自己的用户定义类型

CREATE TYPE geopoint (
   latitude double,
   longitude double,
)

CREATE TABLE geodetails(
     object_id uuid,
     country text,
     country_iso_codex text,
     state text,
     region text,
     city text,
     location frozen<geopoint>,
     PRIMARY KEY(object_id)  
);

注意冷冻

 类似资料:
  • 本文向大家介绍如何在SAP-MDG中存储详细信息?,包括了如何在SAP-MDG中存储详细信息?的使用技巧和注意事项,需要的朋友参考一下 如果您不想创建自定义表,则可以借助重用方法来创建数据模型。然后,您可以将此新创建的数据模型保存在暂存MDG中。您还有其他选择是Z表。您可以创建一个Z表来保留数据。 希望这可以帮助!

  • 我想要的桌子: 更新 谢了!我做了一些关于writetime的实验,因为我无论如何都要写值,所以我只写时间。 这给了我: 简单的基准测试在存储或从更大的表中读取时没有显著的性能差异。

  • 问题内容: Jenkinsfile使用命令从链接的Bitbucket存储库中检索最新提交。 为了使Jenkinsfile能够从源存储库中提取和作为变量,然后将这些变量作为控制台输出打印出来,需要向Jenkinsfile中添加什么特定的语法?** 样本Jenkinsfile: 我尝试将Jenkins Pipeline SCM步骤文档中的想法纳入以下示例Jenkinsfile中,其结果日志将在下面进一

  • Since 10.0.18 getCurrentLocation 新接口 getCurrentLocation 获取当前设备所在的地理位置信息,包括经纬度、准确度、逆地理编码、POI地址等,与此前 getLocation 老接口的参数和错误码定义 不 兼 容 ! 使用方法 AlipayJSBridge.call('getCurrentLocation', { cacheTimeout, req

  • 问题内容: 我正在阅读程序包中的源代码,遇到了一些问题: 由于我完全是and 的菜鸟,所以请毫不犹豫地分享您所知道的任何信息:) 首先关于func :其参数和返回值意味着什么?我已经搜索了文档和站点,但似乎对此缺乏描述。 其次,由于我正在使用,所以我搜索了源代码并在此处找到它:http : //golang.org/src/pkg/syscall/asm_darwin_amd64.s?h=RawS

  • count Number size Number liveSize Number