一、通过数据库检索数据有什么问题(like %)?
1)通过like % 模糊查询会导致当前的搜索变成一个全表扫描,如果数据量巨大,则性能会变的很差,而且索引还没办法对这种查询进行优化。
2)like % 没办法对结果进行精准定位,只是单纯的将结果按照数据库的顺序显示。
二、扫描是全文检索服务器?
全文检索服务主要是用来提供进行大数据的检索查询的功能。本身全文检索会形成一个独立的服务,并且不依赖于数据库。全文检索服务通过独特的搜索方式,提供了高效并且精准的查询服务(TB级数据可以在毫秒级,PB级可以在秒级完成)。
Lucene - 纯Java实现
Solr、ES
为什么全文检索服务器可以高效的进行查询?
三、Solr的安装
前置环境:
jdk的安装
tomcat的安装
上传solr的压缩包和IK分词器
安装Solr索引库(SolrHome):
解压:tar -zxf solr-4.10.4.tgz
进入解压文件:cd solr-4.10.4
将索引库拷贝到一个指定的路径:cp -r ./example/solr /usr/local/solrhome
准备tomcat的solr工程:
进入指定路径:cd /usr/local/software/solr-4.10.4/dist
将solr.war包拷贝到tomcat的webapps下:
cp solr-4.10.4.war /usr/local/software/tomcat8.5/webapps/solr.war
在指定的路径下,创建一个classess文件夹:
cd /usr/local/software/tomcat8.5/webapps/solr/WEB-INF
mkdir classes
拷贝相关的日志jar包:
cd /usr/local/software/solr-4.10.4/example/lib/ext
cp * /usr/local/software/tomcat8.5/webapps/solr/WEB-INF/lib/
拷贝相关的日志配置文件:
cd /usr/local/software/solr-4.10.4/example/resources
cp * /usr/local/software/tomcat8.5/webapps/solr/WEB-INF/classes
让tomcat的solr工程和solrhome关联起来:
cd /usr/local/software/tomcat8.5/webapps/solr/WEB-INF/
vim web.xml
重启tomcat
安装中文分词器
解压:unzip wltea-IK-Analyzer-2012FF-master.zip
拷贝jar包和配置文件:
cd /usr/local/software/IK-Analyzer-2012FF/dist
cp IKAnalyzer2012FF_u1.jar /usr/local/software/tomcat8.5/webapps/solr/WEB-INF/lib
cp IKAnalyzer.cfg.xml /usr/local/software/tomcat8.5/webapps/solr/WEB-INF/classes/
在solrhome中配置中文分词器:
cd /usr/local/solrhome/collection1/conf
vim schema.xml
在303行,写入:
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
重启tomcat
创建索引库中的字段
创建字段的原则,就是那些需要参与搜索或者显示的字段
修改scheme.xml:
cd /usr/local/solrhome/collection1/conf
vim scheme.xml
重启tomcat
四、SpringBoot整合Solr
1)添加依赖
2)配置application.yml
3)注入solr对象,操作solr索引库