Solr7.4+数据库+SpringBoot

Solr下载安装:

官方下载链接:solr 7.4.0

注意:solr7需要java8环境,且需要在环境变量中添加 JAVA_HOME变量。

因为项目环境为windows服务器,所以这里下载了zip包。并且新版的solr不需要与tomcat集成可独立运行。

解压Zip包,打开cmd,cd进入solr-7.4.0\bin目录下,启动命令:

solr start -p 8983

关闭命令:

solr stop -all

创建Code:

cmd在solr-7.4.0\bin目录下,执行:

solr create -c [corename]

进入solr-7.4.0\server\solr目录,可以看到刚刚创建的code目录。

将以下jar包放入solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib目录下

solr-7.4.0\dist\solr-dataimporthandler-7.4.0.jar

solr-7.4.0\dist\solr-dataimporthandler-extras-7.4.0.jar

mssql-jdbc-6.1.0.jre7.jar

solr-7.4.0\contrib\analysis-extras\lucene-libs\lucene-analyzers-smartcn-7.4.0.jar

这里前三个jar包是solr导入SQL server数据库所需要的,最后是自带的中文分词jar

PS:需要使用IK分词的,可以参考Github:ik-analyzer

配置Code:

配置文件均在solr-7.4.0\server\solr\ [codename] \conf目录下

managed-schema:

在其他fieldType节点处插入支持中文分词的fieldType节点:

    
    
            
    
     
        
    
 

插入对应SQL中的字段field:


solrconfig.xml :

在其他requestHandler节点处插入dataimport的配置:

 
     
        data-config.xml 
     

data-config.xml

新建data-config.xml,配置如下:



    
    
                  
              
              
              
             
              
             
            
            
            
            
        
    

详细配置方法可参考:Solr-data-config.xml配置

导入数据

配置文件修改完成后,打开浏览器solr管理页面,进入Cord Admin重载code配置:

重载code配置

Code Selector选择对应code,进入Dataimport界面,导入数据:
数据导入

切换至Query界面点击查询,即可看到导入的数据。
PS:每次修改配置文件,都需要重新执行导入,重建索引

清除所有数据

切换至Documents界面,Document Type选择XML,输入以下Document(s)并提交:

*:*

再次Query即可发现,数据已经清空。

创建Windows服务:

下载nssm:nssm官方下载
解压对应系统目录下的nssm.exe文件至solr-7.4.0\bin目录下
打开cmd,cd进入solr-7.4.0\bin目录下,启动命令:

nssm install solr

PS:双击直接执行nssm.exe可以看到命令帮助文档

Path选择solr-7.4.0\bin\solr.cmd
Arguments填入参数:(-p 8983为默认端口号,可省略)

start -f -p 8983

点击Install service,创建服务


创建服务

cmd输入命令,修改服务自动运行:

sc config solr start= auto

SpringBoot整合:

pom.xml引入solr依赖:

        
            org.springframework.boot
            spring-boot-starter-data-solr
        

application.properties加入solr配置:

spring.data.solr.host=http://127.0.0.1:8983/solr

代码中注入SolrClient

    @Resource
    private SolrClient solrClient;

查询Demo:

        //创建查询语句
        SolrQuery query = new SolrQuery();
        //设置查询条件
        query.setQuery("*:*");//设置查询关键字 q
        query.setFields("id,solrQDBM,solrQDMC,solrQDTZ,solrDW,solrCKDJ,solrSCTIME,solrMD5,score");//显示的字段 fl
        query.setSort("score", SolrQuery.ORDER.desc);//按照得分降序排列
        query.setStart(0); //offset
        query.setRows(5); //limit
        //执行查询(需传入code名)
        QueryResponse queryResponse = solrClient.query("collection_qd", query);
        //获取文档列表
        SolrDocumentList documentList = queryResponse.getResults();
        //获取总记录数
        long numFound = documentList.getNumFound();
        System.out.println("总记录数:" + numFound);
        for (SolrDocument solrDocument : documentList) {
            //取各个文档信息
            System.out.println("rowID:" + solrDocument.get("id") );
            System.out.println("清单名称:" + solrDocument.get("solrQDMC") );
            System.out.println("得分:" + solrDocument.get("score") );
            System.out.print(solrDocument.toString());
            System.out.println("************************");
        }

你可能感兴趣的:(Solr7.4+数据库+SpringBoot)