Solr DSE:地理位置,即纬度和经度在cassandra中存储为不同的字段

Solr DSE:地理位置,即纬度和经度在cassandra中存储为不同的字段,solr,cassandra,datastax,datastax-enterprise,Solr,Cassandra,Datastax,Datastax Enterprise,我正在从Apache Cassandra升级到Datastax Cassandra。计划在我的一个表上使用位置搜索功能 当前表如下所示 CREATE TABLE tweets ( id INT PRIMARY KEY, user TEXT, body TEXT, time TIMESTAMP, latitude FLOAT, longitude FLOAT ); 在示例Datastax Solr中,我看到纬度和经度应该是同一列的一部分。有什么方法可以索引吗

我正在从Apache Cassandra升级到Datastax Cassandra。计划在我的一个表上使用位置搜索功能

当前表如下所示

CREATE TABLE tweets (
   id INT PRIMARY KEY,
   user TEXT,
   body TEXT,
   time TIMESTAMP,
   latitude FLOAT,
   longitude FLOAT
);
在示例Datastax Solr中,我看到纬度和经度应该是同一列的一部分。有什么方法可以索引吗 纬度和经度分开,以便索尔能理解

对于solr中的空间查询,需要在具有类型位置的字段中存储以逗号分隔的纬度和经度

如果您试图在字段类型位置中只放置一个值,则会出现错误。如果您想使用solr的空间搜索,则必须将这两个值都存储为逗号分隔的位置类型

您可以使用pfloat或pdouble数据类型将这两个值存储在不同的字段中,但不能使用solr的空间搜索功能来查找最近距离


我认为您可以通过使用(FIT)来实现这一点——它允许转换提交给Solr的文档,因此您可以获取两个坐标并从中创建一个字段。请检查链接的文档-它有示例代码,应该不太难实现

另外,你可以用拉特朗字体来代替,这样会更有效。我还知道如何在DSE中配置此字段类型(尽管我在DSE核心中使用DSE的
PointType