一、Solr单机版安装
Solr是使用Java编写,所以linux虚拟机中必须已安装JDK。
1 上传并解压
此处使用Xftp6上传Solr的文件压缩包solr-8.2.0.tgz到/usr/local/tmp中。
进入/usr/local/tmp路径,解压压缩包
# cd /usr/local/tmp
# tar zxf solr-8.2.0.tgz
2 复制到/usr/local中
将solr-8.2.0文件夹从/usr/local/tmp/复制到/usr/local/并更名为solr
# cp -r solr-8.2.0 ../solr
3 修改启动参数
修改启动参数,否则启动时报警告。设置SOLR_ULIMIT_CHECKS=false
进入solr的bin路径并编辑solr.in.sh文件
# cd /usr/local/solr/bin
# vim solr.in.sh
4 启动Solr
Solr内嵌Jetty,直接启动即可。监听8983端口。
solr默认不推荐root账户启动,如果是root账户启动需要添加-force参数。
# ./solr start -force
二、新建核心
在关闭防火墙的前提下,可以在windows的浏览器中访问Solr的可视化管理界面。
Solr安装完成后默认是没有核心的。需要手动配置。
需要在solr/server/solr下新建文件夹,并给定配置文件,否则无法建立。
1 新建目录
在/usr/local/solr/server/solr中新建自定义名称目录。此处示例名称为testcore。
# cd /usr/local/solr/server/solr
# mkdir testcore
2 复制配置文件
在configsets里面包含了_default和sample_techproducts_configs。里面都是配置文件示例。_default属于默认配置,较纯净。sample_techproducts_configs是带有了一些配置示例。
将/usr/local/solr/server/solr/configsets/_default下的conf文件夹复制到/usr/local/solr/server/solr/testcore下
# cp -r configsets/_default/conf/ testcore/
3 填写Core信息
在可视化管理界面中Core Admin中编写信息后点击Add Core后,短暂延迟后testcore就会创建成功。schema处不用更改。
4 出现testcore
在客户端管理界面中,选择新建的Core后,就可以按照自己项目的需求进行操作了。
三、分词Analysis
在Solr可视化管理界面中,Core的管理菜单项中都会有Analysis。表示根据Scheme.xml(managed-schema)中配置要求进行解析。
与解析英文不同,如果解析中文,正确的方式是把一句话按照合理的词组进行拆分。
示例:
配置步骤
去https://search.maven.org/search?q=com.github.magese下载对应版本的ik-analyzer。
1.1 上传jar到指定目录
上传ik-analyzer-8.2.0.jar到/usr/local/solr/server/solr-webapp/webapp/WEB-INF/lib目录中
1.2 修改配置文件
修改/usr/local/solr/server/solr/testcore/conf/managed-schema
# vim /usr/local/solr/server/solr/testcore/conf/managed-schema
添加下面内容。
<field name="myfield" type="text_ik" indexed="true" stored="true" />
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
1.3 重启
# cd /usr/local/solr/bin
# ./solr stop -all
# ./solr start -force
1.4 验证
可以在可视化管理界面中找到myfield属性进行验证。
四、Dataimport
此处以本地的mysql8数据库为例
可以使用Solr自带的Dataimport功能把数据库中数据快速导入到solr中.
前提必须保证managed-schema和数据库中表的列对应。
编辑managed-schema文件
# vim /usr/local/solr/server/solr/testcore/conf/managed-schema
即在managed-schema中添加与数据库中表的列对应的内容
<field name="price" type="pdouble" indexed="false" stored="true" />
<field name="name" type="text_ik" indexed="true" stored="true" />
<field name="desc" type="text_ik" indexed="true" stored="true" />
1 修改配置文件
编辑solrconfig.xml
# vim /usr/local/solr/server/solr/testcore/conf/solrconfig.xml
添加下面内容
<!-- 配置数据导入的处理器 -->
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<!-- 加载data-config.xml -->
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
2 新建data-config.xml
和solrconfig.xml同一目录下新建data-config.xml
# touch /usr/local/solr/server/solr/testcore/conf/data-config.xml
编辑data-config.xml,添加如下内容
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://192.168.0.102:3306/product?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"
user="root"
password="root"/>
<document>
<entity name="product" query="SELECT pid,name,price,description from products">
<!--实现数据库的列和索引库的字段的映射
column 指定数据库的列表
name 指定索引库的字段名字,必须和schema.xml中定义的一样
-->
<field column="pid" name="id"/>
<field column="name" name="name"/>
<field column="price" name="price"/>
<field column="description" name="desc"/>
</entity>
</document>
</dataConfig>
注意:
mysql5与mysql8的driver值不同
在该xml文件中,密码改为自己数据库的连接密码,url中的ip地址为自己使用的网络ip地址
url中若有&符,需将其替换为&
可在cmd中查询自己使用的网络ip地址
此时使用的无线网络,因此WLAN的地址为所需地址;应根据实际情况确定地址
3 添加jar
向/usr/local/solr/server/solr-webapp/webapp/WEB-INF/lib中添加三个jar。在dist中两个还有一个数据库驱动。
可从已有的/usr/local/solr/dist中复制,也可从本地传输
在solr-8.2.0/dist中有两个所需jar包
还需传输数据库驱动包
4 操作
在mysql8环境中,需检查root用户是否具有远程访问权限
可在Navicat中测试是否具有权限
若连接测试失败,则需要授予远程访问权限
使用mysql8时授权的步骤:
1.使用cmd登录mysql,需以管理员身份运行
登录mysql
输入命令并执行
use mysql; #切至“mysql”数据库
select host, user from user; #此条命令可不执行
update user set host='%' where user='root'; #更改权限
flush privileges; #刷新权限
重启solr
重启的命令为:
# cd /usr/local/solr/bin
# ./solr stop -all
# ./solr start -force
重启solr后,在可视化管理页面中进行数据导入。
注意:
点击导入按钮后,要记得点击刷新按钮。