下载solr
docker pull solr
运行
docker run --name solr \
-p 8983:8983 -d solr
使用
创建 solr 的 core
上面为默认信息,此时点击确定后,发现会提示失败
Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/opt/solr/server/solr/new_core'
不过呢,会在容器内部 /opt/solr/server/solr
目录下创建一个 new_core
空文件夹,我们把默认配置文件拷贝到该文件夹下
cp -r /opt/solr/server/solr/configsets/_default/conf/* /opt/solr/server/solr/new_core/
重启镜像
docker restart solr
然后重新添加一下core,发现core添加成功了,如果在Logging面板,发现有警告,请按照提示创建 conf
文件夹,并重启
导入mysql数据
1、在导入数据之前,我们需要把 mysql-connector-java-5.1.6.jar
、solr-dataimporthandler-x.x.x.jar
拷贝到 /opt/solr/server/solr-webapp/webapp/WEB-INF/lib
路径下
- mysql-connector-java-5.1.6.jar下载
- solr-dataimporthandler-x.x.x.jar 位于
/opt/solr/dist
目录下
2、然后往 /opt/solr/server/solr/new_core/solrconfig.xml
的<config></config>
标签里添加下面内容
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
然后在同一个目录下面新建一个 data-config.xml
并写入下面内容,这里 column
是指数据库中的列明,name
是指solr中显示的名称
<dataConfig>
<dataSource name="source" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://mysql.lqiao.top:3306/student" user="student" password="Password@123456"/>
<document>
<entity name="student" query="select * from t_student_info" dataSource="source" >
<field column="stu_id" name="id" />
<field column="stu_number" name="number" />
<field column="stu_name" name="name" />
<field column="stu_gender" name="gender" />
<field column="stu_age" name="age" />
</entity>
</document>
</dataConfig>
然后去修改 /opt/solr/server/solr/new_core/manager-schema
文件,在 <schema></schema>
标签中加入作为 solr 索引的字段,这里不配的话,会导致后面导数据的时候不成功。
注意:manager-schema 文件里面已经有队 id 列的定义,如果要显示 id 列就不用再次添加了
<field name="stu_number" type="string" indexed="true" stored="true" />
<field name="stu_name" type="string" indexed="true" stored="true" />
<field name="stu_gender" type="string" indexed="true" stored="true" />
<field name="stu_age" type="string" indexed="true" stored="true" />
然后重启 solr ,发现进到 Dataimport 里面能够正常显示。
使用
到 Dataimport 点击 Execute 和 Refresh Status 按钮,可以看到
到 Query 栏点击查询按钮,数据能够搜索出来
错误汇总
数据同步时发生的错误
The solrconfig.xml file for this index does not have an operational DataImportHandler defined!
这种错误是因为没有在 solrconfig.xml
文件中配置 data-config.xml
的指定位置