最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux如何安装Solr搜索引擎
时间:2026-07-07 08:02:52 编辑:袖梨 来源:一聚教程网
Solr 8.11+ 推荐使用 bin/solr start 启动内置 Jetty,而非外置 Tomcat;需确保 Java 11+(OpenJDK 更稳)、默认 server/solr 路径不可乱改、中文分词器须通过 analyzer 接口实测验证、启动失败优先查 solr.log 和 netstat -tuln | grep :8983。
直接说结论:Solr 8.11+ 推荐用 bin/solr start 启动内置 Jetty,别硬套 Tomcat;只有老版本(7.x 及更早)或有强监控/多租户需求时才考虑外置容器。
Java 版本不对,bin/solr start 会静默失败
不是报错退出,就是卡在 “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 当作 root 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是 runtime 加载依据,删了 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 访问,不是本地localhost;如果绑定了127.0.0.1(默认行为),需改solr.in.sh的SOLR_HOST为0.0.0.0才能外网访问
复杂点在于:Solr 启动逻辑看似简单,实际耦合了 Java 版本、路径约定、配置加载顺序、网络绑定策略四层判断;任何一个环节偏离默认假设,都会导致“没报错但不工作”。最容易被忽略的是 server/solr 这个隐式 home 路径,以及 analyzer 接口的实测验证 —— 它们不显眼,但决定功能是否真可用。
相关文章
- 高德地图路线规划显示异常怎么办 07-09
- 漫蛙漫画官方版正版ios如何安装 07-09
- 胖东来官网地址-胖东来官方网站入口地址 07-09
- investopedia官网中文版入口-investopedia国内能用的官方网页版入口地址 07-09
- 一点文学txt小说网站入口-一点文学小说官网入口地址2026最新 07-09
- 易校园怎么绑定微信 07-09