1.下载solr项目包 或者上传压缩包到服务器 直接去官网下载 https://lucene.apache.org/solr/downloads.html 或者
wget https://mirror.bit.edu.cn/apache/lucene/solr/7.7.3/solr-7.7.3.tgz
2.解压
tar -zxvf solr-7.7.3.tgz
3.下载解压tomcat
cd /opt/moudle/tomcat
tar -zxvf apache-tomcat-8.5.55.tar.gz
4. Solr 解压后server/solr-webapp下一个webapp目录,它就是Solr的Web项目,把它复制到 tomcat的webapps目录下并改名为solr
# 进入Solr的server目录下
cd /opt/moudle/solr/solr-7.7.3/server/solr-webapp
# 复制webapp目录到tomcat-solr的webapps目录下
cp -r webapp/ /opt/moudle/tomcat/apache-tomcat-8.5.55/webapps
# 将Solr的web应用改名
cd /opt/moudle/tomcat/apache-tomcat-8.5.55/webapps
# 将webapp重命名为solr
mv webapp solr
5. 复制所需依赖jar包
#复制solr-7.7.3\server\lib\ext 下的jar包到/apache-tomcat-8.5.55\webapps\solr\WEBINF\lib下(即刚刚复制并重命名为solr的文件夹下)
cd /opt/moudle/solr/solr-7.7.3/server/lib
cp ext/* /opt/moudle/tomcat/apache-tomcat-8.5.55/webapps/solr/WEB-INF/lib/
#复制solr-7.7.3\server\lib下所有metrics-开头的jar包(一共有5个)到/apache-tomcat-8.5.55/webapps/solr/WEB-INF/lib/
cp metrics-* /opt/moudle/tomcat/apache-tomcat-8.5.55/webapps/solr/WEB-INF/lib/
6. 配置solrhome 这个目录用于存储Solr Core的数据及配置文件
#首先创建solrhome存储Solr索引文件
mkdir -p /usr/local/solr/solrhome
#复制server/solr目录下所有内容到solrhome
cd /opt/moudle/solr/solr-7.7.3/server/solr
cp -r * /usr/local/solr/solrhome/
7. 配置Tomcat
修改web.xml 修改复制到tomcat中的Solr项目中的 WEB-INF 目录下的 web.xml 配置文件
修改 solr_home 路径指向我们刚刚创建的 solrhome
cd /opt/moudle/tomcat/apache-tomcat-8.5.55/webapps/solr/WEB-INF
vi web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/local/solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
去掉安全认证
8.启动tomcat 访问测试
cd /opt/moudle/tomcat/apache-tomcat-8.5.55/bin
./startup.sh
# 访问tomcat
http://192.168.70.80:8080/
#solr访问
http://192.168.70.80:8080/solr/index.html
6.配置solr_core
# /opt/moudle/solr/solr-7.7.3/server/solr/configsets/_default/conf 到 solrhome/new_core
cd /usr/local/solr/solrhome
cp /opt/moudle/solr/solr-7.7.3/server/solr/configsets/_default/conf -rf new_core
# 修改 managed-schema 为 schema.xml
cd new_core/
mv managed-schema schema.xml
Solr数据操作
1.使用dataimport 导入数据库数据
①. 首先找到solr7.7.3/dist/solr-dataimporthandler-7.7.3.jar 和 solr-dataimporthandler-extras7.7.3.jar,复制到tomcat/webapp/solr/WEB-INF/lib/下,并且找到相应数据库的驱动包,也同样 放到该目录。我这里用的是mysql的驱动包。
②. 将mysql的数据库脚本 执行 向mysql中插入数据。
③. 找到solr7.7.3/example/example-DIH/solr/db/conf/db-data-config.xml,把其复制到 solrhome/new_core/conf/下,并改名为data-config.xml
cd /opt/moudle/solr/solr-7.7.3/example/example-DIH/solr/db/conf
cp db-data-config.xml /usr/local/solr/solrhome/new_core/conf
cd /usr/local/solr/solrhome/new_core/conf
mv db-data-config.xml data-config.xml
④.打开并编辑data-config.xml,完整的配置文件如下
<dataConfig>
<!-- 这是mysql的配置 -->
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.70.25:3306/lagou_position" user="root" password="123456"/>
<document>
<!-- query是一条sql,代表在数据库查找出来的数据 -->
<entity name="book" query="select * from position">
<!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是 solr的域(必须是在managed-schema文件中配置过的域才行) -->
<field column="id" name="id"/>
<field column="companyName" name="companyName"/>
<field column="positionAdvantage" name="positionAdvantage"/>
<field column="companyId" name="companyId"/>
<field column="positionName" name="positionName"/>
<field column="salary" name="salary"/>
<field column="salaryMin" name="salaryMin"/>
<field column="salaryMax" name="salaryMonth"/>
<field column="salaryMonth" name="salaryMonth"/>
<field column="education" name="education"/>
</entity>
</document>
</dataConfig>
⑤. 找到 solrconfig.xml,并打开,在里面添加一段内容,如下
cd /usr/local/solr/solrhome/new_core
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
⑥. 在new_core/conf/managed-schema 配置对应的域
<field name="positionName" type="text_ik" indexed="true" stored="true"/>
<field name="positionAdvantage" type="text_ik" indexed="true" stored="true"/>
<field name="salaryMin" type="pfloat" indexed="true" stored="true"/>
重启tomcat