全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解java整合solr5.0之solrj的使用

1、首先导入solrj需要的的架包

2、需要注意的是低版本是solr是使用SolrServer进行URL实例的,5.0之后已经使用SolrClient替代这个类了,在添加之后首先我们需要根据schema.xml配置一下我们的分词器

这里的msg_all还需要在schema.xml中配置

它的主要作用是将msg_title,msg_content两个域的值拷贝到msg_all域中,我们在搜索的时候可以只搜索这个msg_all域就可以了,

solr默认搜索需要带上域,比如

solr更改默认搜索域的地方也在schema.xml,它默认是搜索text域的,但是5.0之后不在这里配置默认搜索域了,它的文档也告诉我们,在solrconfig.xml中配置


在solrconfig.xml中配置默认搜素域,这样我们就可以按照我们自己的域进行搜索了

 配置好以上,就可以使用代码进行CURD

private final static String URL="http://localhost:8080/solr/java";
  public SolrClient server=null;
  
  @Before
  public void init() throws Exception{
    server=new HttpSolrClient(URL);
  }

删除所有分词

//删除所有分词
  @Test
  public void testDel() throws Exception{
    server.deleteByQuery("*:*");
    server.commit();//先删除 基于query的删除 会删除所有建立的索引文件
  }

增加分词

@Test
  public void testAdd() throws Exception{
    SolrInputDocument doc=new SolrInputDocument();
    doc.addField("id", "3");
    doc.addField("msg_title", "新浪微博");
    doc.addField("msg_content", "我有一个微博帐号名字叫做什么呢?");
    server.add(doc);
    server.commit();
  }

基于Bean增加分词

@Test
  public void test03() throws Exception{
    List<Message> msgs=new ArrayList<Message>();
    msgs.add(new Message("4", "第四个测试solr测试文件", new String[]{"中华人民共和国万岁","中华上下五千年那年"}));
    msgs.add(new Message("5", "第5个好朋友是什么意思呢?", new String[]{"上海是个好地方","歌唱我们亲爱的祖国曾经走过千山万水"}));
    server.addBeans(msgs);
    server.commit();
  }

查询结果

@Test
  public void test04() throws Exception{
    //定义查询内容 * 代表查询所有  这个是基于结果集
     SolrQuery query = new SolrQuery("solr");
     query.setStart(0);//起始页
     query.setRows(3);//每页显示数量
     QueryResponse rsp = server.query( query );
     SolrDocumentList results = rsp.getResults();
     System.out.println(results.getNumFound());//查询总条数
     for(SolrDocument doc:results){
       System.out.println(doc);
     }
  }

将查询结果集封装为对象Bean

@Test
  public void test05() throws Exception{
     SolrQuery query = new SolrQuery("中华");// * 号 是查询 所有的数据
     QueryResponse rsp = server.query( query );
     List<Message> beans = rsp.getBeans(Message.class);//这个不能获取查询的总数了 也不能高亮
     for(Message message:beans){
       System.out.println(message.toString());
     }
  }

将结果集高亮显示

@Test
  public void test06() throws Exception{
    //定义查询内容 * 代表查询所有  这个是基于结果集
     SolrQuery query = new SolrQuery("solr");
     query.setStart(0);//起始页
     query.setRows(5);//每页显示数量
     query.setParam("hl.fl", "msg_title,msg_content");//设置哪些字段域会高亮显示
     query.setHighlight(true).setHighlightSimplePre("<span class='hight'>")
     .setHighlightSimplePost("</span>");
     
     QueryResponse rsp = server.query( query );
     SolrDocumentList results = rsp.getResults();
     System.out.println(results.getNumFound());//查询总条数
     for(SolrDocument doc:results){
       String id = (String) doc.getFieldValue("id"); //id is the uniqueKey field
       if(rsp.getHighlighting().get(id)!=null){
         //高亮必须要求存储 不存储的话 没法添加高亮
         System.out.println(rsp.getHighlighting().get(id).get("msg_title"));
       }
     }
  }

ok,solr的基本使用就完成了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java整合solr  # solr  # java  # 开发  # java操作solr实现查询功能的实例  # solr在java中的使用实例代码  # java多线程处理执行solr创建索引示例  # maven项目下solr和spring的整合配置详解  # Ubuntu16.04安装部署solr7的图文详细教程  # linux下安装solr的教程详解  # SpringBoot整合Redis、ApachSolr和SpringSession的示例  # 启动Solr提示Java版本低问题解决方案  # 就可以  # 每页  # 中华  # 查询结果  # 条数  # 自己的  # 的是  # 是个  # 是基于  # 起始页  # 也在  # 要在  # 好朋友  # 帐号  # 告诉我们  # 什么呢  # 千山万水  # 那年  # 还需  # 中华人民共和国 


相关文章: 建站之星安装模板失败:服务器环境不兼容?  家具网站制作软件,家具厂怎么跑业务?  如何通过二级域名建站提升品牌影响力?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站之星安装后界面空白如何解决?  建站主机选哪种环境更利于SEO优化?  官网网站制作腾讯审核要多久,联想路由器newifi官网  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  javascript中对象的定义、使用以及对象和原型链操作小结  网站制作软件有哪些,制图软件有哪些?  建站10G流量真的够用吗?如何应对访问高峰?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  建站与域名管理如何高效结合?  制作宣传网站的软件,小红书可以宣传网站吗?  TestNG的testng.xml配置文件怎么写  建站主机数据库如何配置才能提升网站性能?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  内部网站制作流程,如何建立公司内部网站?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  制作网站的软件免费下载,免费制作app哪个平台好?  建设网站制作价格,怎样建立自己的公司网站?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何用花生壳三步快速搭建专属网站?  郑州企业网站制作公司,郑州招聘网站有哪些?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何将凡科建站内容保存为本地文件?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何配置IIS站点权限与局域网访问?  C#如何序列化对象为XML XmlSerializer用法  学校免费自助建站系统:智能生成+拖拽设计+多端适配  如何快速使用云服务器搭建个人网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  建站之星安装后如何自定义网站颜色与字体?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  图册素材网站设计制作软件,图册的导出方式有几种?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  制作网页的网站有哪些,电脑上怎么做网页?  如何生成腾讯云建站专用兑换码?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  如何用美橙互联一键搭建多站合一网站?  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何快速搭建高效可靠的建站解决方案?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  广州建站公司哪家好?十大优质服务商推荐  建站之星客服服务时间及联系方式如何?  长沙做网站要多少钱,长沙国安网络怎么样?  建站主机如何选?性能与价格怎样平衡? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。