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

使用Drush索引时Solr Search_api_attachment失败问题求助

解决Solr 5.5.5 + Drupal 7 search_api_attachments附件搜索失败的问题

看起来你遇到的核心问题是Solr找不到solr.extraction.ExtractingRequestHandler类——这个类是Solr用来解析Office、PDF等附件内容的关键组件,依赖Apache Tika库。结合你的环境和错误日志,我整理了几个排查和解决步骤:

1. 检查Solr核心的solrconfig.xml配置

首先确认你的Solr核心配置文件($SOLR_HOME/server/solr/my_Index_name/conf/solrconfig.xml)里是否已经定义了ExtractingRequestHandler:

<requestHandler name="/update/extract" class="solr.extraction.ExtractingRequestHandler">
  <lst name="defaults">
    <str name="lowernames">true</str>
    <str name="fmap.content">text</str> <!-- 这里的text要对应你Solr schema里的可搜索字段 -->
  </lst>
</requestHandler>

如果没有这段配置,手动添加进去,然后重启Solr服务:

sudo systemctl restart solr

2. 确认Tika相关依赖jar包存在

Solr的ExtractingRequestHandler需要Apache Tika的支持jar包,在Solr 5.5.5中,这些包默认在安装目录的contrib/extraction/lib/和dist/solr-cell-5.5.5.jar里。你需要把这些jar包复制到你的Solr核心的lib目录($SOLR_HOME/server/solr/my_Index_name/lib/,如果没有就新建这个目录),或者全局的Solr lib目录($SOLR_HOME/server/solr/lib/):

# 复制Solr Cell和Tika相关jar包
cp /path/to/solr-5.5.5/dist/solr-cell-5.5.5.jar $SOLR_HOME/server/solr/my_Index_name/lib/
cp /path/to/solr-5.5.5/contrib/extraction/lib/*.jar $SOLR_HOME/server/solr/my_Index_name/lib/

复制完成后记得重启Solr,确保jar包被加载。

3. 验证Extract Handler是否正常可用

通过浏览器或者curl访问Solr的Extract Handler地址,确认没有500错误:

curl http://your-solr-host:8983/solr/my_Index_name/update/extract

如果返回Solr的默认请求处理页面(即使提示缺少参数),说明handler已经正常加载;如果还是报错,查看Solr的日志文件($SOLR_HOME/server/logs/solr.log),里面会有更详细的jar包加载失败信息。

4. 检查Drupal search_api_attachments配置

进入Drupal后台,找到search_api_attachments的设置页面:

  • 确认“Solr extract path”设置为/update/extract(和你solrconfig.xml里定义的handler名称一致)
  • 确认附件内容被映射到了Solr中正确的可搜索字段(比如schema里的text字段,需要是分词、可索引的类型)

5. 重新索引并测试

先清空现有索引,再重新执行索引操作:

# 清空索引
drush sapi-c 'my_Index_name'
# 重新索引
drush sapi-i 'my_Index_name'

索引完成后,测试附件搜索功能,看是否能正常返回包含附件内容的结果。

额外注意事项

  • 权限问题:确保Solr用户(通常是solr)对复制的jar包有读取权限,RHEL7上可以用chown -R solr:solr $SOLR_HOME/server/solr/my_Index_name/lib/调整权限
  • SELinux限制:如果RHEL7的SELinux处于强制模式,可能会阻止Solr读取jar包,可以临时关闭SELinux测试(sudo setenforce 0),如果问题解决,再添加对应的SELinux策略

内容的提问来源于stack exchange,提问作者Mubarak Shaikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:02:44