solr入门案例

 solr是apache下的一个全文检索引擎系统. 我们需要在服务器上单独去部署solr, 通过它的客户端工具包solrJ, 就是一个
    jar包, 集成到我们项目中来调用服务器中的solr.
    solr底层使用lucene开发

部署步骤:
    1. 准备一个干净的Tomcat, 没有任何项目都可以运行的.
    2. 将solr/example/webapps/solr.war复制到Tomcat/webapps/目录下
    3. 运行Tomcat,运行日志会报错, 不要紧, 目的是对solr.war解压
    4. 关闭Tomcat并删除Tomcat/wabapps下的solr.war
    5. 将solr/example/lib/ext下的所有jar包复制到tomcat/webapps/solr/WEB-INF/lib文件夹下
    6. 复制solr/example/solr文件夹到硬盘根目录并改名为solrhome(solrhome: 就是solr的家, 一个solr服务器只能有一个solrhome, 一个solrhome中可以都多个solrcore, 一个solrcore就是一个
    solr实例.实例和实例之间是互相隔离的.)
    7. 将solrhome的位置复制到Tomcat/webapps/solr/WEB-INf/web.xml中
    8. 启动Tomcat, 访问http://localhost:8080/solr看到solr页面后说明部署成功

开发入门程序:

  依赖包:Solr服务的依赖包,\solr\example\lib\ext ;solrj依赖包,\solr-4.10.3\dist\solrj-lib;junit

1、 创建HttpSolrServer对象,通过它和Solr服务器建立连接。

2、 创建SolrInputDocument对象,然后通过它来添加域。

3、 通过HttpSolrServer对象将SolrInputDocument添加到索引库。

4、 提交。

代码实现:

    public class TestIndexManager {
    @Test
    public void testIndexCreat throws Exception, IOException {
        HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
        // 创建文档对象
        SolrInputDocument solrDocument = new SolrInputDocument();
        solrDocument.addField("id", "001");
        solrDocument.addField("title", "xxx");
        solrServer.add(solrDocument);
        solrServer.commit();
      }
    }

  修改:

    @Test
    public void testUpdate() throws Exception, IOException{
        HttpSolrServer httpSolrServer = new HttpSolrServer("http://localhost:8080/solr");
        SolrInputDocument solrInputDocument = new SolrInputDocument();
        
        solrInputDocument.addField("id", "001");
        solrInputDocument.addField("title", "yyy");
        httpSolrServer.add(solrInputDocument);
        httpSolrServer.commit();
    }

  删除:

    @Test
    public void testDelect() throws Exception, IOException{
        HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
        solrServer.deleteByQuery("id:001");
        solrServer.commit();
    }

  查询:

    @Test
    public void testSelect() throws Exception{
        HttpSolrServer httpSolrServer = new HttpSolrServer("http://localhost:8080/solr");
        
        SolrQuery solrQuery = new SolrQuery();
        solrQuery.setQuery("*:*");
        QueryResponse query = httpSolrServer.query(solrQuery);
        SolrDocumentList results = query.getResults();
        for (SolrDocument solrDocument : results) {
            System.out.println(solrDocument.get("id"));
            System.out.println(solrDocument.get("title"));
        }
        
    }

Solr入门介绍的更多相关文章

  1. Solr学习笔记(5)—— Spring Data Solr入门

    一.Spring Data Solr简介 前面已经介绍了通过solrJ来操作solr,那么我们如何将Solr的应用集成到Spring中?Spring Data Solr就是为了方便Solr的开发所研制 ...

  2. C# BackgroundWorker组件学习入门介绍

    C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...

  3. Solr术语介绍:SolrCloud,单机Solr,Collection,Shard,Replica,Core之间的关系

    Solr有一堆让人发晕的术语如:collections,shards,replicas,cores,config sets. 在了解这些术语之前需要先做做如下功课: 1)什么是倒排索引? 2)搜索引擎 ...

  4. 初识Hadoop入门介绍

    初识hadoop入门介绍 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. < ...

  5. [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

    最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...

  6. [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍

    前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...

  7. JavaScript入门介绍(二)

    JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...

  8. JavaScript入门介绍(一)

    JavaScript入门介绍 [经常使用的调试工具][w3school.com.cn在线编辑] [Chrome浏览器 开发调试工具]按F121.代码后台输出调试:console.log("t ...

  9. .NET 4 并行(多核)编程系列之一入门介绍

    .NET 4 并行(多核)编程系列之一入门介绍 本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下:  1. 并行编程和多线程编程的区别.  ...

随机推荐

  1. MSVCP110.DLL没有被指定在WINDOWS上运行

    要重新安装C++ 运行库 为msvcp110.dll是VC++2012的文件 数字代表版本msvcp120是VC++2013的 110是2012的 100是2010的 90是2008的 71是2005 ...

  2. 机器人学 —— 机器人感知(Mapping)

    对于移动机器人来说,最吸引人的莫过于SLAM,堪称Moving Robot 皇冠上的明珠.Perception 服务于 SLAM,Motion Plan基于SLAM.SLAM在移动机器人整个问题框架中 ...

  3. ubuntu中python3安装package

    1.实验环境 Ubuntu16.04x86 + python3.5 ubuntu中同时存在python2.7 和 python3.5 2.pip使用说明 sudo pip install packag ...

  4. poj 1556

    哦天哪这个萨比提又浪费了我好几个小时. 我们在check的时候只考虑严格相交就行了,想了很久才注意到这一点. 然后就建图跑最短路,over. #include <cstdio> #incl ...

  5. git最佳实践之feature和hotfix分支

    先来复习一波,git的最佳分支管理流程: 再简单复习各个分支: master: 主分支,主要用来版本发布. develop:日常开发分支,该分支正常保存了开发的最新代码. feature:具体的功能开 ...

  6. eclipse解决js提示

    自学js,发现eclipse中不管js文件.html文件.jsp文件没有都没js代码的提示,对于js代码也不报错,有时候就因为单词敲错却查了很久没查出来,很烦很难受. 在网上找了很多方法,都没有解决, ...

  7. mui 窗口管理及窗口之间的数据传递

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  8. jQuery设置时间格式

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  9. pandas 2

    ============== sdf={'rkey':[1,2,3,2],'name':['rkey1','rkey2','rkey3','rkey4']}sdf2={'lkey':[1,2,3],' ...

  10. 使用PyQT开发图形界面程序

    环境 python:v3.3 PyQT:v4.10.4 注意问题: 在主文件前面加入,否则当前的工程模块无法找到 import sys sys.path.append(".") 入 ...