You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr9启动加载Django生成的schema.xml报LatLonType类找不到如何修复

报错根因

django-haystack 默认的 Solr schema 模板未适配 Solr 8+ 版本的字段类型变更,旧版本使用的空间字段类 solr.LatLonType 已经在 Solr 8.0 版本正式移除,Solr 9.0 加载包含该类的 schema 时就会抛出 ClassNotFoundException。

修复方法

直接修改通过 python manage.py build_solr_schema 生成的 schema.xml 文件,按以下步骤调整:

  • 定位到字段类型定义区块,找到name为location、class为solr.LatLonType的配置段,原始配置通常如下:
    <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
    
  • 将该配置替换为 Solr 9 兼容的空间字段类型:
    <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/>
    
  • 查找schema中所有带_coordinate后缀、关联旧location类型的附属字段配置,类似如下内容:
    <field name="location_lat_coordinate" type="tdouble" indexed="true" stored="true" multiValued="false"/>
    <field name="location_lng_coordinate" type="tdouble" indexed="true" stored="true" multiValued="false"/>
    
    这类字段是旧LatLonType的依赖配置,新字段类型不需要,直接整段删除即可。
  • 保存文件后重启对应Solr core,即可正常加载配置。
可选简化方案

如果你的业务不需要地理位置搜索能力,直接删除整个name="location"的fieldType定义,以及所有引用location类型的字段配置,也可以直接解决该报错。

注意:配置修改完成、Solr core正常启动后,需要重新执行python manage.py rebuild_index命令重建全量索引,避免字段类型不兼容导致的索引写入、查询异常。


内容的提问来源于stack exchange,提问作者Nwawel A Iroume

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 08:18:28