Solr学习—入门

来源:互联网 发布:阿里云系统机顶盒刷机 编辑:程序博客网 时间:2024/05/18 18:45

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

Solr安装

我将在Windows下,完成对Solr的安装,假设您已经下载了Solr并且解压完成。

1.将solr部署到tomcat中。将/example/webapps下的solr.war解压到tomcat中webapps目录下。
这里写图片描述
这里写图片描述

2.复制jar包。将/example/lib/ext下面所有的jar加入到tomcat中webapps\solr\WEB-INF\lib下。

这里写图片描述

这里写图片描述

3.复制exampl/solr文件夹到其他目录,并且修改webapps\solr\WEB-INF\中的web.xml文件。为了方便我直接将其复制到C盘根目录下

这里写图片描述
修改web.xml文件。

这里写图片描述

<env-entry>       <env-entry-name>solr/home</env-entry-name>       <env-entry-value>C:solr</env-entry-value>       <env-entry-type>java.lang.String</env-entry-type></env-entry>

4.此时solr已经安装好了,开启你的tomcat,在浏览器中输入localhost:8080/solr即可。
这里写图片描述

Solr使用

1.如果要实现中文搜索,我们必须加入额外的中文分词器,这里我使用了IK Analyzer。打开解压文件,

这里写图片描述

将.jar包添加到tomcat\webapps\solr\WEB-INF\lib中。

这里写图片描述

并且将IKAnalyzer.cfg.xml和stopword.dic加入solr\WEB-INF\classes中。

这里写图片描述

2.配置Schema.xml,将上面配置的中文分词器加入solr中的,找到fieldType,加入IKAnalyzer。

Schema.xml文件位置:
这里写图片描述

<fieldType name="text_ik" class="solr.TextField">    <analyzer type="index" isMaxWordLength="false"           class="org.wltea.analyzer.lucene.IKAnalyzer"/>    <analyzer type="query" isMaxWordLength="true"        class="org.wltea.analyzer.lucene.IKAnalyzer"/></fieldType>

接着加入索引字段item_title。

<field name="item_title" type="text_ik" indexed="true" stored="true"/>

3.在Java中我们可以借助SolrJ来使用Solr。

  • 插入数据到Solr
@Test    public void testSolrJ() throws SolrServerException, IOException{        //创建一个到solr的连接        SolrServer server = new HttpSolrServer("http://localhost:8080/solr");        //创建一个文档对象,可以理解为数据库的一条记录        SolrInputDocument document = new SolrInputDocument();        //添加域,可以理解为为记录中各个字段设置值        document.addField("id", "测试一下");        document.addField("item_title", "测试field");        //提交到索引库        server.add(document);        server.commit();    }

此时打开我们的Solr,执行搜索id:测试一下,看到记录确实插入了Solr中。

这里写图片描述

  • 查询数据
@Test    public void testQuery() throws SolrServerException{        SolrServer server = new HttpSolrServer("http://localhost:8080/solr");        //创建一个搜索对象        SolrQuery query = new SolrQuery();        query.setQuery("id:测试一下");        //执行搜索        QueryResponse result = server.query(query);        for (SolrDocument solrDocument : result.getResults()) {            System.out.println("id:"+solrDocument.get("id"));            System.out.println("item_title:"+solrDocument.get("item_title"));        }    }

结果如下,说明我们成功查询倒了数据。

这里写图片描述

总结

以上内容只适合第一次接触Solr的同学,讲的比较简单,只是为了介绍如何使用Solr。还有很多内容,如schema.xml文件中各个节点的具体含义,SolrQuery的其他属性如何设置,如何将Solr与Spring和ORM框架整合等等会在之后带来介绍。

原创粉丝点击