用Java开发Solr 实际应用教程

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr是一个全文检索服务器,只需要进行配置就可以实现全文检索服务。


Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。


solr教程:需要你了解Java、Linux、Tomcat等知识。

目前市面上对于solr的教程特别少、我希望给我们没有条件的编程学者整理solr知识点、一起学习、一起奋斗。

而且大学不会教solr、我也是自学的。一般像这种高级的东西只有培训机构可能会教了。




一、前提工作

1、下载

从Solr官方网站(http://lucene.apache.org/solr/ )下载Solr4.10.3,根据Solr的运行环境,Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。
Solr使用指南可参考:https://wiki.apache.org/solr/FrontPage。



2、Solr的安装及配置

需要把solr服务器安装到linux环境:
第一步:安装linux、jdk、tomcat。
创建新的solr目录:

[root@bogon ~]# mkdir /usr/local/solr


把tomcat复制到solr目录
[root@bogon ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat

[root@bogon ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r


第二步:把solr的压缩包上传到服务器。并解压。

第三步:把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war(可以不改)

[root@bogon dist]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war


第四步:解压war包、启动tomcat自动解压。先关闭tomcat。再删除solr.war。

第五步:把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中。

[root@bogon ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/


第六步:创建solrhome。Solrhome是存放solr服务器所有配置文件的目录。

[root@bogon example]# cp -r solr /usr/local/solr/solrhome


第七步:告诉solr服务器solrhome的位置。
需要修改solr工程的web.xml文件。

第八步:启动服务器(如下图2-1)




二、Java来开发solr

1、先打开solr后台管理页面(图2-1)



2、Java实现solr增删改差

在项目中添加依赖、或者架包、因为我用的是maven

        <!-- solrj客户端 -->
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
        </dependency>


3、实现类

3.1添加

    //http://192.168.29.132:8080/solr/ 这个一定要有 / ,不然会报IO异常
    private static final String SOLR_URL = "http://192.168.29.132:8080/solr/";



    /**添加、修改直接添加新的就好、但是id要一样才能修改、不然就是添加*/
    @Test
    public void addDocument() throws Exception {
        //创建一连
        SolrServer solrServer = new HttpSolrServer(SOLR_URL);
        //创建一个文档对象
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id", "001");
        document.addField("item_title", "测试001");
        document.addField("item_price", 6666);
        //把文档对象写入索引库
        try {
            solrServer.add(document);
        }catch (Exception e){
            e.printStackTrace();
        }

        //提交
        solrServer.commit();
    }

结果图、删除看代码里面的注释说明




3.2删除

/**删除、*/
    @Test
    public void deleteDocument() throws Exception {
        //创建一连接
        SolrServer solrServer = new HttpSolrServer(SOLR_URL);
        solrServer.deleteById("001");
        solrServer.commit();
    }


结果图



3.4、查询

/**查询*/
    @Test
    public void queryDocument() throws Exception {
        SolrServer solrServer = new HttpSolrServer(SOLR_URL);
        //创建一个查询对象
        SolrQuery query = new SolrQuery();
        //设置查询条件
        query.setQuery("*:*");
        //分页开始
        query.setStart(20);
        //分页结束
        query.setRows(50);
        //执行查询
        QueryResponse response = solrServer.query(query);
        //取查询结果
        SolrDocumentList solrDocumentList = response.getResults();
        System.out.println("共查询到记录:" + solrDocumentList.getNumFound());
        for (SolrDocument solrDocument : solrDocumentList) {
            System.out.println(solrDocument.get("id"));
            System.out.println(solrDocument.get("item_title"));
            System.out.println(solrDocument.get("item_price"));
            System.out.println(solrDocument.get("item_image"));
        }
    }



书籍下载:solr安装与配置(http://download.csdn.net/detail/javawebrookie/9717355)







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值