[root@localhost bin]# ./solr start -force
*** [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 29967.
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
Waiting up to 180 seconds to see Solr running on port 8983 [|]
Started Solr server on port 8983 (pid=22343). Happy searching!
[root@localhost bin]# cd ..
一、准备环境
1、一台linux服务器(Centos7)
2、安装jdk8环境
3、准备solr7.8安装包
二、安装(我这里使用的是solr自带的应用容器,也可以集成到tomcat)
1)从官网下载最新solr
wget http://mirrors.shuosc.org/apache/lucene/solr/7.4.0/solr-7.4.0.tgz
2)解压,安装
tar -zxvf solr-7.2.0.tgz
3)相关命令
bin/solr stop -all 关闭solr服务
bin/solr start -force 开启solr服务
bin/solr status 查看solr服务状态
三、使用solr
1、点击Core Admin
这里写图片描述
2、按照步骤去创建,然后点击确认会出现
这里写图片描述
3、这个错误是因为找不到对应的配置文件,进入server/solr/configsets/_default/直接把里面的conf 复制到 你新建的core中 你新建的core在server/solr目录下
命令如下:
1、进入到server/solr/configsets/_default下
cd /usr/local/install/solr7.4.0/server/solr/configsets/_default/
2、然后复制到新建的test中
cp -r conf /usr/local/install/solr7.4.0/server/solr/test/
3、到这儿core已创建好,相应的操作可以去网上寻找,我在这就不详细说明
三、连接mysql数据库
1)首先处理jar
mysql-connector-java-x.x.x.jar solr-dataimporthandler-extras-5.1.0.jar solr-dataimporthandler-7.1.0.jar
拷贝到 solrserversolr-webappwebappWEB-INFlib 下
1)配置连接信息
找到你新建的 core 下的solrconfig.xml文件(solrconfig.xml 文件所在目录是: solrserversolr estconf),打开找到第一个requestHandler,在他下面加入如下内容
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
再在你创建的core目录的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.1.105:3306/solr"
user="root"
password="root" />
<document>
<entity name="person" query="select * from user">
<field column="ID" name="id" />
<field column="name" name="name" />
<field column="passward" name="passward" />
</entity>
</document>
</dataConfig>
dataSource不多说,一看就明白,
entity --代表数据库表,column--代表数据库表字段,name--代表solr中字段名
(注意:创建这个文件的时候第一行不能有空格或者空行,否则报错)
在managed-schema文件中添加对应于数据库字段的field,建议在 solr 可视化界面操作。当然,一定要手动修改 managed-schema 文件也不是不可以,但是每次更改完需要重新加载 Core,或者粗暴一点直接重新启动solr也可以。那么,直接修改 managed-schema 文件的。到这里你应该能联系上数据库了,也可以导入数据了。
---------------------
作者:csdn_hzl
来源:CSDN
原文:https://blog.csdn.net/csdn_huzeliang/article/details/80876200
版权声明:本文为博主原创文章,转载请附上博文链接!
solr 7配置中文分词器
这里示例配置solr官方提供的Smartcn的中文分词、IK的中文分词及拼音分词
1、配置smartcn中文分词器
solr安装包有提供Smartcn中文分词架包,在SOLR_ROOT/contrib/analysis-extras/lucene-libs/下,我这里使用solr 7.2.1,所以架包名称为lucene-analyzers-smartcn-7.2.1.jar
把smartcn中文分词器架包复制到solr项目的WEB-INF/lib目录下
cp /usr/local/solr-7.2.1/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.2.1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
1
配置 fieldType
找到solrhome/${collection}/conf/managed-schema
添加smartch中文分词器配置
<schema>
<!-- 配置中文分词器 -->
<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
</fieldType>
</schema>
1
2
3
4
5
6
7
8
9
10
11
重启tomcat
新添加架包一定要重启tomcat
查看效果
smart中文分词效果
2、配置IK Analyzer中文分词器
先下载 IK Analyzer中文分词器架包及相关配置文件。
听说I分词器不支持**solr 6、7搭建成的**solrcloud,待验证。
这里写图片描述
里面包括IK Analyzer 2个架包:ik-analyzer-solr5-5.x.jar、solr-analyzer-ik-5.1.0.jar
IK配置文件 IKAnalyzer.cfg.xml、ext.dic、stopword.dic
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>
1
2
3
4
5
6
7
8
9
10
11
准备IK中文分词器环境
把IK中文分词器架包复制到solr项目的WEB-INF/lib目录下
把IK分词器相关配置文件复制到solr项目WEB-INF/classes/ 目录下
这里写图片描述
配置 fieldType
找到solrhome/${collection}/conf/managed-schema
在solr scheam文件中里添加 IK fieldType。
<schema>
<!-- IK分词 -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
</analyzer>
</fieldType>
</schema>
1
2
3
4
5
6
7
8
9
10
11
说明:当 useSmart=”false”,分词粒度较小,分词后个数多;当 useSmart=”true”,分词粒度大,分词后个数据少。
效果
分词的效果比官方提供的smartcn中文分词要好,去掉了标点符号,去掉了 的 等词义不重要的字。
这里写图片描述
3、拼音分词器
先下载 IK拼音分词器架包:pinyin4j-2.5.0.jar、pinyinAnalyzer4.3.1.jar
把相关架包复制到solr项目的WEB-INF/lib目录下
配置fieldType
找到solrhome/${collection}/conf/managed-schema
在solr scheam文件中里添加 IK fieldType
<schema>
<!-- IK 拼音分词 -->
<fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
<filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
<filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
<filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
<filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
</analyzer>
</fieldType>
</schema>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
效果
这里写图片描述
---------------------
作者:写代码的蓝胖子
来源:CSDN
原文:https://blog.csdn.net/huangliuyu00/article/details/79491513
版权声明:本文为博主原创文章,转载请附上博文链接!