Linux安装Solr搜索引擎详细完整教程
直接说结论:Solr 8.11+ 推荐使用 bin/solr start 启动内置 Jetty,无需强行搭配 Tomcat;仅在老版本(7.x 及更早)或需要强监控、多租户场景下才考虑外置容器。
Java 版本不匹配,bin/solr start 会静默失败
如果 Solr 启动时没有报错退出,而是卡在 “Starting Solr” 无响应,或者刚启动就立刻消失 —— 八成是 Java 版本不兼容的问题。
- Solr 8.11.x 有硬性门槛:执行
java -version输出的版本号必须包含11.(例如11.0.22),1.8.0_*绝对无法通过验证。 - Solr 9.x 要求更严格,强制需要 Java 17+,且 OpenJDK 的稳定性更好。在 CentOS/RHEL 上直接运行
sudo yum install -y java-17-openjdk-devel即可完成安装。 - 不要试图通过修改
SOLR_JAVA_HOME来绕过版本检查 —— 该变量仅控制启动脚本读取路径,真正决定 JVM 版本的是系统PATH环境变量中的java命令,修改后依然无效。 - 验证方法很简单:执行
bin/solr start -V,第一行会显示Using Java version: ...,如果版本不符合要求,请更换正确的 JDK。
solr home 路径设置错误,新建 core 时出现 Can't find configset '_default'
这个错误并非配置文件丢失,而是 Solr 找不到 configset 目录。默认情况下,Solr 8+ 将 server/solr 作为根 solr home —— 注意,这是一个硬编码路径,并非由环境变量动态驱动。
- 不要随意设置
SOLR_HOME:一旦 export 该变量,所有 core 都必须放在指定路径下,且该路径必须包含configsets/_default子目录,否则bin/solr create -c mycore必然会失败。 - 推荐做法是保持默认,让 Solr 自动管理
server/solr目录;新建 core 时命令会自动在server/solr/mycore/conf/下生成标准配置结构。 - 如果确实需要自定义路径,请使用
-s /path/to/home参数(例如bin/solr create -c mycore -s /opt/my-solr-home),不要直接修改环境变量。 - 另外,
server/solr/mycore/core.properties文件不能删除:其中的configSet=xxx是运行时加载的依据,删除后通过 UI 或 API 创建 core 都会失败。
中文分词器安装后未生效?不能只看插件是否加载成功
即使已将插件复制到 server/solr/configsets/_default/conf/analysis-ik/、修改了 managed-schema、重启了 Solr —— 这些操作只是“表面完成”。要验证实际效果,必须通过 analyzer 接口进行测试。
- 执行命令:
curl "http://localhost:8080/solr/mycore/analysis/field?analysis.fieldname=text_general&analysis.text=北京大学" - 重点关注返回 JSON 中的
tokens数组:如果依然是单字切分("北","京","大","学"),说明 IK 分词器未生效;正确结果应为"北京大学"或"北京","大学"。 - 常见陷阱:schema 中字段 type 指向的
text_ik类型未定义,或定义中的analyzer class="org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer"使用了旧版类名 —— Solr 8+ 已弃用SmartChineseAnalyzer,改为使用analysis-smartcn插件配合smartcn_tokenizer实现。 - 注意端口号:默认端口是 8983,而非 8080;如果你在
solr.in.sh中修改了SOLR_PORT,curl 请求地址也需要同步更新。
启动后无法访问 Web UI?先检查端口和防火墙,再查看日志位置
如果浏览器打不开 http://localhost:8983/solr,不要急着重装,90% 的情况都是网络或权限问题引起的。
- 首先确认 Solr 确实在运行:执行
bin/solr status,输出中应包含solr-8.11.2 is running和对应的 PID。 - 检查监听端口:运行
netstat -tuln | grep :8983,没有输出则说明未成功监听;如果有输出但外部无法访问,大概率是被防火墙拦截了。 - 在 CentOS/RHEL 上执行:
sudo firewall-cmd --permanent --add-port=8983/tcp && sudo firewall-cmd --reload来开放端口。 - 日志文件不在
catalina.out:Solr 8+ 默认将日志写入server/logs/solr.log,所有错误信息都记录在其中。启动失败时,使用bin/solr start -f(前台模式)可以实时看到报错信息。 - 不要只局限于
localhost:远程服务器应使用服务器 IP 访问;如果 Solr 默认绑定127.0.0.1,需要在solr.in.sh中将SOLR_HOST改为0.0.0.0才能实现外网访问。
复杂之处在于:Solr 启动逻辑看似简单,实际上耦合了 Java 版本、路径约定、配置加载顺序、网络绑定策略四层判断;任何一个环节偏离默认假设,都会导致“没有报错却不工作”的现象。最容易被忽略的是 server/solr 这个隐式 home 路径,以及 analyzer 接口的实测验证 —— 它们虽然不显眼,但直接决定了功能是否真正可用。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Win11频繁断网提示默认网关不可用怎么办
先聊聊一个很常见的问题:Windows 11 电脑刚连接 Wi-Fi 或插上网线时还能正常访问网络,可几分钟后突然“掉线”,任务栏右下角出现“无 Internet”提示,右键诊断显示“默认网关不可用”。这时候重启电脑或点击“修复”能暂时恢复,但用不了多久又会断开。这说明系统其实已经获得了 IP 地址
Mac如何取消正在进行的系统备份任务
Mac 正在执行时间机器备份时,进度条卡在“正在准备”或“备份中”迟迟不动,磁盘读写与网络带宽被持续占用——这种情形下,大多数用户都希望能立即中断任务。设想这样一个场景:你正赶着安装大型软件,或者急需拔出外接硬盘,但系统却执意继续备份。别担心,这里有一套行之有效的解决方案:先在“活动监视器”中强制退
电脑显示器刷新率锁死60Hz无法调整的解决方法
显示器刷新率锁死60Hz时,需检查DP或HDMI线缆版本并更换VESA认证线缆;可通过显示适配器属性勾选隐藏刷新率选项、显卡控制面板自定义时序、清洁安装驱动或使用CRU工具修改EDID强制启用高刷模式。
Linux系统下Systemd服务管理从零开始方法步骤详解完整教程
systemctl管理systemd服务,修改配置于 etc systemd system,启用需daemon-reload再enable。查看状态关注Loaded行,masked服务需unmask并重载恢复。reload发SIGHUP,restart中断连接,reload-or-restart自动降级。日常禁用优先用disable。
Mac如何取消同步iPhone书签和历史记录
彻底关闭iCloudSafari同步并选择“保留在Mac上”,然后手动删除书签文件夹或清理~ Library Safari Bookmarks plist文件,最后通过iCloud官网确认同步已失效,即可彻底清除Mac上的iPhone同步书签。
- 日榜
- 周榜
- 月榜
相关攻略
2026-07-03 07:44
2026-07-03 07:44
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:43
2026-07-03 07:42
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

