使用Solr空间搜索时遇‘pt missing’等报错,如何排查解决?
问题分析与解决方案
一、查询时「pt missing」错误
你的查询语句格式有误,{!geofilt}本地参数的参数传递方式不正确。正确写法有两种:
- 把
pt和d直接包含在本地参数中:{!geofilt sfield=latlng pt=45.15,-93.85 d=5} - 或者在Solr UI的
q栏填写{!geofilt sfield=latlng},然后在页面下方的「Add Field」里分别添加pt=45.15,-93.85和d=5两个参数,不要把&直接写在q参数的内容里。
二、索引时字段索引选项冲突错误
这个错误是因为latlng字段最初创建时的索引选项为NONE,之后修改为location_rpt或location类型时,新类型需要DOCS索引选项,而Solr不允许直接修改已有字段的索引选项(会导致索引数据不一致)。解决步骤:
- 删除现有
latlng字段:通过Schema API执行删除请求,比如:{"delete-field": {"name": "latlng"}} - 重新创建
latlng字段,指定正确类型并确保索引选项符合要求:{"add-field": {"name": "latlng", "type": "location_rpt", "stored": true, "indexed": true}} - 重新全量导入或提交所有文档到索引。
内容的提问来源于stack exchange,提问作者Savannah Shannon
相关产品推荐
相关产品推荐

