`
实学实战
  • 浏览: 15614 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

用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)







分享到:
评论

相关推荐

    solr开发应用教程

    总结,本“Solr 3.5开发应用教程”将引导你从基础安装到实际应用,全面掌握Solr搜索引擎的使用技巧。同时,提供的“教程重要说明.txt”可能包含更多关于实践过程中的注意事项和常见问题的解答,配合“Solr 3.5开发...

    JAVA+Solr分词项目工程实例Java源码

    在Java开发中,搜索引擎和文本处理是一个重要的领域,而Apache Solr是其中一个非常流行的开源全文搜索平台。这个项目工程实例是关于如何使用Java与Solr进行集成,实现分词搜索功能的示例。Solr提供了强大的文本分析...

    JAVA+Solr分词项目工程实例Java实用源码整理learns

    在Java开发中,使用Solr的主要好处包括: 1. **全文搜索**:Solr内置了强大的全文索引功能,能够对文本进行高效的关键词匹配,提高搜索体验。 2. **分词**:Solr支持多种分词器,如中文分词器,能将中文文本拆分成...

    solr在java中使用总结

    Solr是一个高性能的全文搜索引擎,基于Apache Lucene开发,使用Java 5编写。它不仅继承了Lucene的强大功能,还提供了更丰富的查询语言以及更好的性能优化。Solr具备高度可配置性和可扩展性,支持通过HTTP请求提交XML...

    开源企业搜索引擎SOLR的应用教程

    实际应用中,Solr 可用于电子商务网站的商品搜索、新闻门户的全文检索、企业内部文档库的快速查找等多种场景。通过合理的配置和优化,Solr 可以提供高并发、低延迟的搜索体验。 总之,Apache Solr 是一个功能强大...

    solr学习入门教程

    Solr实际上依赖于Lucene,它是Lucene的服务器化版本。Solr利用Lucene的核心技术实现了更高级的功能,如Web服务接口、多语言支持、分布式搜索等。因此,虽然它们之间存在依赖关系,但Solr提供了比Lucene更为丰富的...

    solr开发详解

    通过本教程的学习,我们了解了 Solr 的基本概念、安装配置方法以及如何使用 Solrj 进行开发。此外,还通过京东的实际案例展示了 Solr 在实际项目中的应用。对于开发者而言,掌握 Solr 的使用不仅可以提高搜索系统的...

    solr ssm java

    标题中的"solr ssm java"表明这是一个使用Java语言,结合Spring、SpringMVC和MyBatis(SSM)框架的项目,其中整合了Apache Solr搜索引擎。让我们深入了解一下这些技术及其相互作用。 **Solr**: Apache Solr是基于...

    solr中文教程

    在实际应用中,你可能还需要关注 Solr 的集群和复制功能,这允许你在多台机器上部署 Solr,形成一个SolrCloud,以提高系统的可用性和处理能力。同时,Solr 的监控和日志记录也是运维过程中不可忽视的部分,确保系统...

    solr简单应用操作的代码部分

    在实际应用中,我们通常会通过编程语言与Solr交互,如Java、Python或PHP。Solr提供了客户端库,简化了这个过程。以Java为例,我们可以使用SolrJ库来发送请求和处理响应: ```java SolrClient client = new ...

    Solr结合Java所需Jar

    6. **Maven或Gradle依赖管理**:在现代的Java开发中,我们通常使用Maven或Gradle这样的构建工具来管理依赖。在对应的`pom.xml`(Maven)或`build.gradle`(Gradle)文件中,添加对应Solr和其依赖的坐标,构建工具会...

    solr实现电商自定义打分

    在压缩包`solr-custom-score-master`中,可能包含了这样的示例代码,你可以根据实际需求进行研究和应用。 总结来说,通过Solr的函数查询和自定义插件,我们可以灵活地构建电商搜索的自定义打分机制。这不仅可以提升...

    Solr开发指南.pdf

    Solr是Apache软件基金会的一个开源项目,主要用Java开发,它基于强大的全文搜索引擎库Lucene。Solr不仅提供了比Lucene更高级的查询语法,还具有高度可配置和可扩展性,优化了索引和搜索性能。Solr能够独立运行,常被...

    Solr Java Demo

    这个Demo项目非常适合初学者,通过实际运行和修改代码,你可以更好地理解Solr与Java的整合过程,掌握Solrj的使用技巧,以及如何在Java应用中实现高效的全文搜索功能。同时,它也能帮助你了解Solr的索引和查询机制,...

    Solr部署及开发

    开发Solr应用程序时,可以使用HTTP接口与Solr进行交互,通常通过发送JSON或XML格式的请求来执行索引操作、查询或者更新配置。Solr提供了RESTful API,使得与各种编程语言的集成变得简单。例如,你可以使用Python的...

    ssm整合solr

    SSM整合Solr是将Spring、SpringMVC和MyBatis三个开源框架与Apache Solr搜索引擎集成的过程。在Java Web开发中,这种整合能够帮助企业构建高效、可扩展的搜索...在实际开发中,理解并熟练掌握这些知识点是非常重要的。

    人工智能-项目实践-搜索引擎-基于solrj开发solr主从搜索引擎服务的dubbo组件

    《基于Solrj开发Solr主从搜索引擎服务的Dubbo组件》 在现代信息技术领域,搜索引擎作为信息检索的重要工具,其高效、精准的搜索能力对于企业和用户来说具有极高的价值。本项目实践聚焦于利用Solrj开发一个支持主从...

Global site tag (gtag.js) - Google Analytics