Alfresco Share 5.2+Solr4搜索报错:未定义boolean字段问题排查
问题原因与解决方法
问题根源
报错中的boolean@sd@{http://www.adama.com/model/document/1.0}documentStudyNotification是Alfresco自定义模型生成的Solr字段:
- 字段前缀
boolean对应Alfresco模型里的字段类型,@sd代表该字段需要被存储(stored)和索引(indexed) - 全量索引后Solr的schema配置中未包含该字段定义,导致搜索时(尤其是触发分面统计facet逻辑时)抛出字段未定义异常,直接导致搜索返回0条结果
解决步骤
确认自定义模型状态
- 登录Alfresco管理控制台,进入「模型管理」页面,检查
http://www.adama.com/model/document/1.0模型是否处于**激活(Active)**状态 - 若模型未激活,先完成激活操作,再进行后续步骤
- 登录Alfresco管理控制台,进入「模型管理」页面,检查
添加Solr字段定义
- 找到Solr核心的schema配置文件(Alfresco 5.2+ Solr4默认路径为
alfresco-search-services/solr4/workspace-SpacesStore/conf/schema.xml) - 在文件中添加对应字段的配置,字段名需完全匹配报错内容:
<field name="boolean@sd@{http://www.adama.com/model/document/1.0}documentStudyNotification" type="boolean" indexed="true" stored="true" multiValued="false"/> - 配置说明:
type设为boolean匹配字段类型,indexed和stored设为true对应@sd标识,multiValued设为false(boolean类型默认单值)
- 找到Solr核心的schema配置文件(Alfresco 5.2+ Solr4默认路径为
重启服务并重新索引
- 重启Solr服务,确保schema修改生效
- 在Alfresco中触发全量重新索引:可通过管理控制台的「索引管理」页面操作,或用管理员权限发送POST请求到Web Script:
http://<alfresco主机>:<端口>/alfresco/service/api/index/reindex
验证功能恢复
- 等待全量索引完成后,执行搜索操作,检查结果是否正常返回,同时查看Solr日志是否仍有字段未定义的异常
内容的提问来源于stack exchange,提问作者Mike1988B
相关产品推荐
相关产品推荐

