首先,要安装jdk1.8+的环境
下载solr安装包,这里使用的版本为7.7.2
下载:wget http://mirrors.shuosc.org/apache/lucene/solr/7.7.2/solr-7.7.2.tgz
推荐去官网下载安装包,然后通过Xftp等软件上传到linux系统上。注:下载安装包以.tgz结尾
解压:tar -zxvf solr-7.7.2.tgz
添加环境变量
输入以下指令进行配置
打开配置文件:vi etc/profile
在文件的最后一行输入
export JAVA_HOME=/usr/sz/jdk/jdk1.8.0_221
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export SOLR_INSTALL_HOME=/usr/sz/solr/solr-7.7.2
export PATH=$SOLR_INSTALL_HOME/bin:$PATH
注:JAVA_HOME是存放jdk的文件夹;SOLR_INSTALL_HOME是存放solr的文件夹;
编辑完后,保存退出,然后输入以下指令,刷新环境配置使其生效
source /etc/profile
启动solr
以SolrCloud模式启动solr
solr start -c
可能会提示如下内容:
*** [WARN] *** Your open file limit is currently 1024.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
*** [WARN] *** Your Max Processes Limit is currently 3804.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
WARNING: Starting Solr as the root user is a security risk and not considered best practice. Exiting.
Please consult the Reference Guide. To override this check, start with argument '-force'
在solr-7.7.2/bin目录下找到solr.in.sh,用编辑器进行编辑,修改SOLR_ULIMIT_CHECKS=false,消除WARN
再次启动,根据WARN后面提示,在命令后方添加-force
solr start -c -force
访问solr页面
需要先执行命令(systemctl stop firewalld.service)关闭防火墙,否则页面不能正常打开
在浏览器输入http://(服务器地址ip,可以通过ifconfig进行查看):8983/solr即可进行访问
用Tomcat启动solr
1、将solr-7.7.2\server\solr-webapp下的webapp文件夹复制到apache-tomcat-8.5.43\webapps下
2、复制solr-7.7.2\server\lib\ext下的所有jar包到apache-tomcat-8.5.43\webapps\solr\WEB-INF\lib下(即刚刚复制并重命名为solr的文件夹下)
3、复制solr-7.7.2\server\lib下所有metrics-开头的jar包(一共有5个)到apache-tomcat-8.5.43\webapps\solr\WEB-INF\lib下
4、复制solr-7.7.2\server\resources下的log4j.properties文件到webserver\apache-tomcat-8.5.43\webapps\solr\WEB-INF\classes下(默认没有classes文件夹,需要手动新建)
5、复制solr-7.7.2\server\solr文件夹,到任意路径下,并重命名为solrhome(命名随意)
6、修改apache-tomcat-8.5.43\webapps\solr\WEB-INF下的web.xml文件。
7、默认代码为注释状态,释放后,将env-entry-value设置为solrhome的路径
8、注释以下代码,否则项目会报403错误
9、在solrhome文件夹下创建一个core(名字随意)文件夹,并复制solrhome/configsets/_default下的confi文件夹到core下。并在core下创建空文件夹data和core.properties文件。
core.properties文件内容如下:
name=mycore
10、运行apache-tomcat-8.5.43\bin下的startup.sh,启动tomcat。
11、访问http://ip(通过ifconfig查看ip):8080/solr/index.html查看,部署完成
在solr配置IKAnalyzer
分词器版本:IK-Analyzer-1.0-SNAPSHOT.jar
1、将IK-Analyzer-1.0-SNAPSHOT.jar复制到tomcat-8.5.43\webapps\solr\WEB-INF\lib目录下。
2、将分词器自带的三个文件复制到tomcat-8.5.43\webapps\solr\WEB-INF\classes目录下(classes如果没有要自己创建)
3、进入solrhome\core\conf目录下,用编辑器打开managed-schema文件,加入以下内容
<!-- IKAnalyzer -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<!-- IKAnalyzer Field -->
<field name="title_ik" type="text_ik" indexed="true" stored="true"/>
<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>
4、重启tomcat
mysql数据导入solr
1、把dataimport插件依赖的jar包导入到solrhome/core/lib下(lib需自己创建),该jar包在solr\solr-7.7.2\dist目录下
由于要连接数据库,还需要一个数据库连接的jar包,最后,lib中的jar包如下:
2、配置solrconfig.xml文件
打开solrhome\core\conf目录下的solrconfig.xml,加入如下内容
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
3、在同级目录下创建data-config.xml文件,加入如下内容(根据实际情况和数据库中的相应字段进行配置)
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/lucene"
user="root"
password="root"/>
<document>
<entity name="project" query=" select id,name,age,content,text from lucenetest ">
<field column="id" name="id"/>
<field column="name" name="project_name"/>
<field column="age" name="project_age"/>
<field column="content" name="project_content"/>
<field column="text" name="project_text"/>
</entity>
</document>
</dataConfig>
4、设置系统域
打开solrhome/core/conf下的managed-schema文件,添加如下内容
<!-- project -->
<field name="project_name" type="text_ik" indexed="true" stored="true"/>
<field name="project_age" type="string" indexed="false" stored="true"/>
<field name="project_content" type="text_ik" indexed="true" stored="true"/>
<field name="project_text" type="string" indexed="false" stored="true"/>
<!-- 关键词,为了查询方便,可以不配置-->
<field name="project_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="project_name" dest="project_keywords"/>
<copyField source="project_content" dest="project_keywords"/>
5、重启tomcat
6、访问solr的首页,点开Dataimport
点击execute即可创建索引,通过Query可以进行查询