全文检索服务Solr

    xiaoxiao2022-07-13  151

    一、通过数据库检索数据有什么问题(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索引库

            

     

     

    最新回复(0)