如何让Drupal7视频内容类型的所有分类术语引用显示在Apache Solr facets配置页?
我来帮你排查下这个问题,这类情况在Drupal + Apache Solr的组合里挺常见的,咱们一步步来分析解决:
排查与解决步骤
1. 确认分类字段的Solr索引配置
首先得确保那些没显示的分类术语引用字段已经被Solr纳入索引:
- 进入路径
admin/config/search/apachesolr/fields,找到视频内容类型对应的分类字段(命名一般是taxonomy_term_reference_field_[字段名]),检查「Indexed」(已索引)和「Stored」(已存储)选项是否都勾选了。 - 如果这些字段压根没出现在这个页面里,就去字段管理页面(
admin/structure/types/manage/[你的视频内容类型]/fields/[分类字段名]),在编辑页面的「全局设置」里,确认「允许搜索」选项是开启状态。
2. 检查Facets页面的字段可见性配置
有时候字段已经被索引,但在Facets页面被隐藏了:
- 打开
admin/config/search/apachesolr/settings/solr/facets页面,点击页面底部的**「Show row weights」**(显示行权重),看看那些缺失的分类字段是不是被设置了权重0——权重为0的字段会被隐藏,调高权重后保存就能显示出来。 - 另外,逐个检查字段的配置,确保「Exclude from facets」(从分面排除)这个选项没有被勾选。
3. 排查Display Suite的潜在影响
虽然Display Suite主要管内容展示,但它的配置偶尔会影响Solr索引:
- 可以临时禁用Display Suite模块,然后重新触发Solr索引更新(要么用命令
drush apachesolr-index,要么在admin/config/search/apachesolr/index页面手动点击「Index all queued content」),之后再去Facets页面看看字段是否出现。 - 如果禁用后字段正常显示了,那就要检查Display Suite对该分类字段的渲染配置,确保字段的原始术语值(不是渲染后的HTML)被传递给Solr用于索引。
4. 强制重建索引并清除缓存
索引数据异常也会导致这种问题,试试彻底重建:
- 进入
admin/config/search/apachesolr/index,点击「Delete all indexed content」清空现有索引。 - 接着点击「Index all queued content」重新索引所有内容。
- 最后清除Drupal的全量缓存(用命令
drush cr或者在admin/config/development/performance页面操作)。
5. 极端情况:检查Solr Schema配置
如果上面的方法都没用,可能是Solr的schema里缺少对应字段的定义(不过如果已有一个分类字段能正常显示,这个概率较低):
- 登录Solr服务器,打开schema.xml文件,确认是否存在类似下面的分类字段定义:
<field name="taxonomy_term_reference_field_[你的字段名]" type="string" indexed="true" stored="true" multiValued="true"/> - 如果缺失,添加对应的字段定义后重启Solr服务,再重新执行索引操作。
内容的提问来源于stack exchange,提问作者nschildre
相关产品推荐
相关产品推荐

