好,使用Solr中空间搜索利用卡桑德拉在DataStax企业早上
我所要做的是在其上存储我的卡珊德拉数据库中,并利用DataStax企业连接到Solr的数据空间搜索。
一些信息....我已经创建了数据库并与数据一起存储..我也已经创建了一个solr核心,并且可以使用Solr Admin在我的数据库中查询数据。
此时,我正在改变我的schema.xml,以便可以读取我的数据并执行空间查询。
我有几个问题,
1)我应该什么变量类型,以便能有由卡桑德拉正确读取我的纬度和经度点使用内卡桑德拉?
这是我现在有 - 一个例子输入 -
- 我的经纬度信息(经纬度点)存储在卡珊德拉一个varchar变量。运行时,
insert into device(id, location) VALUES('test','45.17614,-93.87341');
--still得到同样的结果:
"error": {
"msg": "The field location does not support spatial filtering",
"trace": "org.apache.solr.common.SolrException: The field location does not support spatial filtering
"code": 500
}
2)这是我当前的schema.xml ----它看起来正确的吗?
*不知道如果我在正确的地方有dynamicField .....(试图领域的部分太)
这是我使用Solr管理查询....还试图在终端
{!geofilt pt=45.15,-93.85 sfield=location d=5}
----在管理
上SELECT * FROM device WHERE solr_query='{!geofilt sfield=location pt=45.15,-93.85 d=5}' limit 10;
-----终端
我的密钥空间作出这样的:
CREATE KEYSPACE device WITH REPLICATION = {'class':'NetworkTopologyStrategy','Solr':1};
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<schema name="autoSolrSchema" version="1.5">
<types>
<fieldType class="org.apache.solr.schema.StrField" name="StrField"/>
<fieldType class="solr.LatLonType" subFieldSuffix="_coordinate" name="coord"/>
</types>
<fields>
<field indexed="true" multiValued="false" name="id" stored="true" type="StrField"/>
<field indexed="true" multiValued="false" name="location" stored="true" type="coord"/>
<dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false"/>
</fields>
<uniqueKey>id</uniqueKey>
</schema>
谢谢!
我已经尝试dynamicefield下的字段内的字段以及无济于事...... – user1655963
您报告的数据没有意义:您创建了名为“pois”的表,然后查询名为“mylocation”的表;您的查询结果示例与schema.xml不匹配...请发布清晰,一致的数据,然后我们会尽力提供帮助。 – sbtourist
我很抱歉,我现在编辑了所有的信息。 – user1655963