solr8学习

一:Solr简介
       Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

     Solr是一个高性能,采用Java5开发,

Solr

基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎

二:Solr服务器的搭建
步骤:

(1)从solr官网下载http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.0.0/solr-8.0.0.tgz下载

(2)配置java环境变量,jdk8

 (3)解压下载的压缩包

solr8学习_第1张图片

进入bin目录

solr8学习_第2张图片

启动之后localhost:8983进入管理页面

solr8学习_第3张图片

点击coreadmin进入创建核心的页面

solr8学习_第4张图片

点击addCore之前,首先要在 solr文件夹下创建和instanceDir同名的文件夹

solr8学习_第5张图片

同时把solr-8.0.0\server\solr\configsets\_default下的conf文件夹拷贝到新建的new_core文件夹下,然后点击addcore,则新建成功。

在solr管理页面的coreselector中就可以找到新建new_core核心。

 

 

 

三:Solr服务器配置中文分词器
步骤:

(1)拷贝中文分词器ik-analyzer-solr5-5.x.jar到server\solr-webapp\webapp\WEB-INF\lib文件夹下

(2)在Solr中的server\solr-webapp\webapp\WEB-INF下面创建classes文件目录,用于存放中文分词器的分词配置

ext.dic的内容,比如如下:

高富帅
黑马程序员
二维表
这样的话,碰到这样的词就不会进行拆分了,所以,一些网络新词就可以在这里进行配置。

IKAnalyer.cfg.xml文件 


 
 
    IK Analyzer 扩展配置
    
    ext.dic; 
    
    
    stopword.dic; 
    

stopwords.dic内容:




a
an
and
are
as
 
这样的话,对于上面的字就不会进行显示处理了,因为这些都是没有意义的词汇。

(3)在核心solr家中,找到配置文件schema.xml,添加中文分词器的配置。

添加如下内容:


    
        
    

    
    
     (4)重启solr start,进行测试是否配置完成。

(5)访问Solr主页,进行测试

四:Solr导入数据

  (1)增加jar包,在server\solr\new_core\文件夹下创建lib包,把solr8学习_第6张图片

放进去

(2)创建配置文件

在server\solr\new_core\conf 中创建data-config.xml文件,



            driver="com.mysql.jdbc.Driver"
            url="jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8"
            user="root"
            password="admin"/>

    
    
    
    



 

把data-config.xml配置到solrconfig.xml中,

   class="org.apache.solr.handler.dataimport.DataImportHandler">
    
        data-config.xml
    

 

(3)导入数据,

重新启动solr,在管理页面

 

entity中就是配置对象。

点击execute按钮把数据库中数据导入到solr服务器中。可以勾选auto-refresh status进行实时处理。

至此导入数据完成

solr8学习_第7张图片

进行测试,但是发现一个问题,就是那么没有出来,只有id。

最后发现了,原来是我在date-config.xml中配置了name这个字段,在managed-schema没有配置

 

加上这句,最后测试正常了。后来发现这样配置还是有问题,不能检索,如果我name的值是中国人在西边中的瓜,我用中国人来检索却检索不出来,后来发现

中的type应该是中文分词类型。

 

对于java编程部分,参考上一遍solr文章

你可能感兴趣的:(java)