各个版本 solr https://archive.apache.org/dist/lucene/solr/
1.tar -zxvf solr-7.7.0.tgz; //解压文件到/usr目录
- 拷贝solr-7.7.0\server\solr-webapp中的webapp文件夹至你的tomcat安装目录下的webapps中,并重命名为solr。
cp -r webapp/ /usr/local/tomcat/apache-tomcat-9.0.16/webapps
mv webapp/ solr
复制solr-7.7.0\server\lib\ext下的所有jar包到apache-tomcat-9.0.16\webapps\solr\WEB-INF\lib下(即刚刚复制并重命名为solr的文件夹下)
cp ext/* /usr/local/tomcat/apache-tomcat-9.0.16/webapps/solr/WEB-INF/lib/
复制solr-7.7.0\server\lib下所有metrics-开头的jar包(一共有5个)到apache-tomcat-9.0.16\webapps\solr\WEB-INF\lib下
cp metrics-* /usr/local/tomcat/apache-tomcat-9.0.16/webapps/solr/WEB-INF/lib/
配置solrhome
这个目录用于存储Solr Core的数据及配置文件
创建solrhome存储Solr索引文件
在/usr/local/solr下创建solrhome文件夹
(复制solr-7.7.0\server\solr文件夹,到任意路径下(这里我们放在刚刚创建的solrhome文件夹下),并重命名为solrhome(命名随意),先创建再复制也可以)
复制solr目录下所有内容到solrhome
cp -r * /usr/local/solr/solrhome/
6、拷贝solr-7.4.0目录下的contrib目录以及dist目录到第四步创建的solr_home文件夹下。
7、在第四步创建的solr_home目录下新建文件夹logs,用来存放运行日志。
8、将solr-7.4.0\server\resources目录下的三个文件,拷贝到上一步创建的logs文件夹下(solr-7.4.0\solr_home\logs)。
注:resources目录下本身是没有log4j.properties的,自行创建以后再复制粘贴过去。
将solr-7.4.0\server\solr\configsets_default目录下的conf文件夹,复制到上一步创建的new_core文件夹下。
在solr_home目录下新建文件夹new_core,代表一个solr工程,solr_home下可以有多个solr工程。,与conf文件夹同级
第三步:配置Tomcat
3.1 修改web.xml
修改复制到tomcat中的Solr项目中的WEB-INF目录下的web.xml配置文件
修改solr_home路径指向我们刚刚创建的solrhome
1 cd /usr/local/tomcat/apache-tomcat-9.0.16/webapps/solr/WEB-INF/
2 vim web.xml
如果文件中没有该代码,手动加入
2 <env-entry>
3 <env-entry-name>solr/home</env-entry-name>
4 <env-entry-value>/usr/local/solr/solrhome</env-entry-value>
5 <env-entry-type>java.lang.String</env-entry-type>
6 </env-entry>
点击Core Admin菜单选项,因为我们还没有在Solr服务器添加Core,所以会弹出以下窗口,此时我们将刚才创建的new_core工程关联进来。
导入数据库中的数据到Solr中
1、在solr-7.4.0\solr_home\new_core\conf目录下创建一个文件data-config.xml,与solrconfig.xml同级。
修改solr-7.4.0\solr_home\new_core\conf目录下的solrconfig.xml文件,即与上一步data-config.xml同级的那个.xml文件,在<requestHandler name="/select" class="solr.SearchHandler">上面增加以下这段代码:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
其中<str name="config"></str>里的内容就是我们在上一步创建的data-config.xml文件,将它们关联起来。
3、接下来我们打开data-config.xml文件,配置相关的数据库属性,即我们要导入那张表的哪些字段,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource name="source1" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/MyEasyBuy?useSSL=true&serverTimezone=UTC"
user="root"
password="******" />
<document>
<entity name="cc_bill" dataSource="source1" pk="bill_id"
query="SELECT TypeName FROM ProductTypeThird">
<field column='TypeName' name='ProName' />
</entity>
</document>
</dataConfig>
(连接池版本高于8 时 需要使用com.mysql.cj.jdbc.Driver)
————————————————
打开managed-schema文件,将刚才在data-config.xml中配置的<field>标签添加进来
这里<field>里的name属性值,就是我们刚才在data-config.xml中<field>标签的name属性值,这是name属性的第一个用途,关联起来。type类型是你的数据类型,要看你从数据库中查的字段是什么类型,我这里是string字符串。
5、因为现在涉及到数据库了,肯定需要依赖一些jar包,我们需要导三个jar包到Tomcat安装目录\webapps\solr\WEB-INF\lib目录下,分别是mysql-connector-java-8.0.11.jar,以及solr-7.4.0\dist目录下的solr-dataimporthandler-7.4.0.jar、solr-dataimporthandler-extras-7.4.0.jar。