Solr 8.10.1单机版core不显示及示例core配置添加咨询
Solr 8.10.1 单机版Core配置解决方案
旧版本Core无法识别的根因
Solr 5.x之后不再默认自动扫描目录加载Core,每个Core根目录下必须存在core.properties配置文件才会被服务识别加载,这是你从4.3.2版本复制的Core无法展示的核心原因。
手动配置Core的操作步骤
- 为每个Core添加核心配置文件
在samplecatalog、mytest等Core的根目录下新建core.properties文件,即可被服务自动识别。 - 修复旧版本配置兼容性
4.x版本的配置与8.10.1存在多处不兼容,需要修改solrconfig.xml适配:
- 统一Lucene匹配版本为8.10.1
- 新增DataImportHandler依赖加载配置(8.x版本数据导入模块已独立出核心包)
- 移除所有已废弃的组件、字段类型配置
标准可用Core目录结构
solr-8.10.1 └── server └── solr └── samplecatalog # Core根目录 ├── core.properties # 必须的Core识别配置文件 ├── conf │ ├── data-config.xml # 数据导入配置 │ ├── schema.xml # 手动维护的字段定义文件 │ ├── solrconfig.xml # Core主配置 │ ├── protwords.txt │ ├── stopwords.txt │ └── synonyms.txt └── data # 索引数据存储目录,无需手动创建,服务会自动生成
核心配置文件示例
1. core.properties 示例
# Core访问名称,接口路径为/solr/[name] name=samplecatalog # Core主配置文件名 config=solrconfig.xml # 字段定义文件名,使用手动维护的schema.xml就填这个 schema=schema.xml # 数据存储相对路径 dataDir=data # 关闭自动修改Schema,手动维护schema.xml时必须开启 schema.managed=false
2. solrconfig.xml 核心适配配置
<?xml version="1.0" encoding="UTF-8" ?> <config> <!-- 配置Lucene匹配版本,必须和当前Solr版本对齐 --> <luceneMatchVersion>8.10.1</luceneMatchVersion> <!-- 加载DataImportHandler依赖 --> <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" /> <!-- 配置数据导入请求处理器 --> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler> <!-- 其他基础配置可以直接复制同版本自带的sample_techproducts_configs/conf/solrconfig.xml对应内容 --> </config>
3. data-config.xml 示例(MySQL数据源参考)
<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <!-- 数据源配置,根据实际存储修改参数 --> <dataSource type="JdbcDataSource" driver="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/你的库名?useUnicode=true&characterEncoding=utf-8" user="数据库账号" password="数据库密码"/> <!-- 索引实体映射配置 --> <document> <entity name="product" query="SELECT id, name, price, description FROM products"> <!-- 数据库字段和Solr schema字段映射 --> <field column="id" name="id"/> <field column="name" name="prod_name"/> <field column="price" name="prod_price"/> <field column="description" name="prod_desc"/> </entity> </document> </dataConfig>
4. schema.xml 基础示例
<?xml version="1.0" encoding="UTF-8" ?> <schema name="samplecatalog" version="1.6"> <!-- 唯一主键配置 --> <uniqueKey>id</uniqueKey> <!-- 字段类型定义 --> <fieldType name="string" class="solr.StrField" sortMissingLast="true"/> <fieldType name="pdouble" class="solr.DoublePointField" /> <fieldType name="text_cn" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/> </analyzer> </fieldType> <!-- 业务字段定义 --> <field name="id" type="string" indexed="true" stored="true" required="true"/> <field name="prod_name" type="text_cn" indexed="true" stored="true"/> <field name="prod_price" type="pdouble" indexed="true" stored="true"/> <field name="prod_desc" type="text_cn" indexed="true" stored="true"/> </schema>
验证方法
- 配置完成后重启Solr服务:
C:\solr-8.10.1\bin\solr restart -p 8983 - 访问http://localhost:8983/solr/#/~cores 即可看到已加载的Core
- 如果加载失败,查看
C:\solr-8.10.1\server\logs\solr.log日志中的错误提示,针对性调整配置兼容性即可
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

