安装步骤:
java环境, jdk1.8
从官网下载最新的solr7.5
wget http://mirrors.hust.edu.cn/apache/lucene/solr/7.5.0/solr-7.5.0.tgz
解压 :tar -zxvf solr-7.5.0.tgz -C /usr/local/
添加环境变量:vim /etc/profile
#solr7.5
export PATH=$PATH:/usr/local/solr-7.5.0/bin/
启动失败原因:
这是因为使用的是root用户所以提示我们要加一个强制启动的参数,那么我们接受它的建议重新启动,输入命令./solr start -force ,当看到下面的输出的时候就说明我们启动成功了,这里我们使用的是它默认的端口,我们也可以加上-p参数来使用其它的端口
启动:solr start -force -p 8982
Solr相关命令:
solr 启动、停止、重启命令
solr start -p 端口号 -force
solr stop -all
solr restart -p 端口号 -force
三:使用命令添加/删除 core
Create
solr create -c name -force
delete
solr delete -c name
示例:创建名为 mote 的core,并访问这个core
访问:浏览器输入我们的ip+端口号就可以访问了
IK分词器
下载:ik-analyzer-solr7-7.x.jar
https://search.maven.org/search?q=com.github.magese
上传到 /usr/local/solr-7.5.0/server/solr-webapp/webapp/WEB-INF/lib/ 目录下
vim /usr/local/solr-7.5.0/server/solr/mote/conf/managed-schema
添加:
<!-- 定义ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
重启Solr solr restart -force
添加自定义字段:
例:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="title_ik" type="text_ik" indexed="true" stored="true"/>
<field name="website_id_ik" type="plong" indexed="true" stored="true" multiValued="false" />
<fieldType name="int" class="solr.TrieIntField" positionIncrementGap="0" docValues="true" precisionStep="0"/>
<field name="content_type_ik" type="int" indexed="true" stored="true" multiValued="false" />
<field name="content_id_ik" type="plong" indexed="true" stored="true" multiValued="false" />
定义 ik分词器的 拓展/停用 词典
在 solr-7.5.0\server\solr-webapp\webapp\WEB-INF 新建classes目录
在classes新建三个文件
ext.dic #用于扩展,添加词语
stopword.dic #用于停用,添加词语
IKAnalyzer.cfg.xml #用于定义扩展和停用
vim IKAnalyzer.cfg.xml
添加:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典-->
<entry key="ext_dict">ext.dic;</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic;</entry>
</properties>
solr restart -force
测试分词
mysql数据库导入solr
下载 mysql 驱动包:mysql-connector-java-x.x.x.jar,绝大部分jar包在maven仓库都能找到
将 mysql 驱动包导入 solr :将下载下来的 mysql-connector-java-x.x.x.jar 拷贝到 solr\server\solr-webapp\webapp\WEB-INF\lib 下;
将solr{home}\dist目录下的:solr-dataimporthandler-7.4.0.jar和solr-dataimporthandler-extras-7.5.0.jar这两个jar包拷贝到 solr\server\solr-webapp\webapp\WEB-INF\lib下
vim /usr/local/solr-7.5.0/server/solr/mote/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>
# solrconfig.xml配置文件主要定义了solr的一些处理规则,包括索引数据的存放位置,更新,删除,查询的一些规则配置。相当于是基础配置文件。
在solr的conf目录下创建data-config.xml文件,由solrconfig.xml定义
vim /usr/local/solr-7.5.0/server/solr/mote/conf/data-config.xml
添加:
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.231.200:3306/huang"
#指定数据库库名
user="huang"
password="123123"/>
#指定数据库账号密码
<document>
<entity name="user1" query="SELECT * from user1">
#指定数据库表名,sql语句
<field column="id" name="id"/>
<field column="name" name="name"/>
#指定数据库字段,需要managed-schema配置文件中确定
</entity>
</document>
</dataConfig>
vim /usr/local/solr-7.5.0/server/solr/mote/conf/managed-schema
添加:
<field name="name" type="string" indexed="true" stored="true"/>
注:managed-schema文件本身已经有id字段的规则不需要添加managed_schema是在使用solr建立core时的配置(core连接配置和索引库),solr根据它确定如何对文档建立索引到索引库中,每个core在建立前都需要设计好managed_schema
重启solr
登入web界面测试
原文地址:https://www.cnblogs.com/hxqxiaoqi/p/10647260.html