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. 树莓派apache2.4源码包安装

    1.安装apr-1.6.3.tar.gz apr-util-1.6.1.tar.bz2 httpd-2.4.34.tar.gz (源码包下载centos7的就行,树莓派版本官方debian) 2.问题 ...

  2. DBA-mysql-授权

    权限系统介绍 权限系统的作用是授予来自某个主机的某个用户可以查询.插入.修改.删除等数据库操作的权限. 不能明确的指定拒绝某个用户的连接. 权限控制(授权与回收)的执行语句包括create user, ...

  3. SQL查看当前数据库所有请求的情况,包括登录用户,登录时间,连接数目

    SQL Code: ALTER PROCEDURE [dbo].[sp_sys_ConnStatus] AS BEGIN /************************************** ...

  4. 转载:【Scala】使用Option、Some、None,避免使用null

    转载自Jason DingGitCafe博客主页(http://jasonding1354.gitcafe.io/)Github博客主页(http://jasonding1354.github.io/ ...

  5. 关于vmware 11.1安装windows 7操作系统时报错 Unist specified don’t exist. SHSUCDX can’t install

    笔者今天在vmware 11.1 虚拟机下使用光驱安装windows 7 32位操作系统时,报错: Unist specified don’t exist. SHSUCDX can’t install ...

  6. Python yield 函数功能

    python中有一个非常有用的语法叫做生成器,所利用到的关键字就是yield.有效利用生成器这个工具可以有效地节约系统资源,避免不必要的内存占用. 一段代码 def test_dict_sort(): ...

  7. [Codeforces Round #221 (Div. 1)][D. Tree and Queries]

    题目链接:375D - Tree and Queries 题目大意:给你一个有n个点的树,每个点都有其对应的颜色,给出m次询问(v,k),问v的子树中有多少种颜色至少出现k次 题解:先对所有的询问进行 ...

  8. 做二级菜单时候遇到的关于事件冒泡以及mouseover和mouseenter的不同

    二级菜单作为最普通小组件,我遇到了坑. <style> .wrapper { height: 150px; border: 1px solid; width: 150px; } .wrap ...

  9. 算法基础_递归_给定一个数字n,打印出所有的划分等式

    问题描述: 给定一个数字n,打印出所有的划分等式 例: n = 3 3 2+1 1+1+1 解题源代码: import java.util.Scanner; /** * 给定数字n,打印出其所有用加法 ...

  10. Gym 101981G - Pyramid - [打表找规律][2018-2019 ACM-ICPC Asia Nanjing Regional Contest Problem G]

    题目链接:http://codeforces.com/gym/101981/attachments The use of the triangle in the New Age practices s ...