下载solr

docker pull solr

运行

docker run --name solr \
-p 8983:8983 -d solr

使用

创建 solr 的 core

colr-admin

上面为默认信息,此时点击确定后,发现会提示失败

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 文件夹,并重启

colr-admin-show

导入mysql数据

1、在导入数据之前,我们需要把 mysql-connector-java-5.1.6.jarsolr-dataimporthandler-x.x.x.jar 拷贝到 /opt/solr/server/solr-webapp/webapp/WEB-INF/lib 路径下

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 按钮,可以看到

colr-dataimport

到 Query 栏点击查询按钮,数据能够搜索出来

colr-dataimport

错误汇总

数据同步时发生的错误

The solrconfig.xml file for this index does not have an operational DataImportHandler defined!

这种错误是因为没有在 solrconfig.xml 文件中配置 data-config.xml 的指定位置


results matching ""

    No results matching ""