Drupal 7中ApacheSolr搜索结果Teaser不更新问题求助
嘿,我碰到过不少Drupal 7 + Apache Solr的同步坑,尤其是你说的Teaser更新不及时的情况,给你几个靠谱的强制更新办法:
强制同步节点Solr索引的实用方法
1. 单个节点快速刷新
- 打开目标节点(比如Sivan的“人员”节点)的编辑页,不用改任何内容,直接点保存。Drupal默认会触发Solr重新索引,把更新后的Teaser同步过去。
- 如果保存后还是没生效,试试在编辑页URL末尾加
?reindex=1(比如node/123/edit?reindex=1),再保存一次,强制触发索引刷新。
2. 批量更新“人员”类型节点
- 如果你有一堆专家简历要同步,去结构 > 内容类型 > 人员 > 管理字段,随便挑一个字段(比如简历字段)点“编辑”,不用改配置直接保存。这会触发该内容类型下所有节点的重新索引,一次性搞定批量更新。
- 也可以用Views批量操作:建一个只显示“人员”内容的视图,添加「批量更新:重新索引节点」的动作,选中需要更新的节点执行操作就行。
3. 用Drush命令(效率最高)
如果你有服务器终端权限,Drush是最快的方式:
- 单节点重新索引:
drush solr-index node 123(把123换成目标节点ID) - 全“人员”类型索引:
drush solr-index type person(这里的person是“人员”内容类型的机器名,换成你实际的机器名) - 全站点强制重索引(万不得已用):先执行
drush solr-reindex标记所有内容需要重索引,再跑drush solr-index开始同步
4. 检查Solr的Teaser配置(避免白忙活)
有时候不是索引没更新,是Solr抓Teaser的逻辑错了:
- 进配置 > 搜索和 metadata > Apache Solr搜索 > 设置,找到“内容提取”相关配置,确认Teaser是用Drupal生成的(不是Solr自己提取的)。
- 检查“人员”内容类型的Solr索引设置,确保Teaser字段(一般是
teaser或body:summary)被标记为可索引且会同步更新。
5. 手动跑索引队列
如果节点已经标记为待索引但队列没执行:
- 进配置 > 搜索和 metadata > Apache Solr搜索 > 索引队列,点「运行队列」按钮,手动处理待同步的节点。
先试试单个节点的方法,Sivan的简历Teaser应该就能同步更新了,要是批量的话用字段保存或者Drush更省心。
内容的提问来源于stack exchange,提问作者Kim L
相关产品推荐
相关产品推荐

