1 //向solr索引库中添加索引
2 public void addDoc() throws Exception {
3 //创建solr客户端的对象
4 HttpSolrClient client = new HttpSolrClient("http://localhost:8080/solr/core");
5 //创建文档对象
6 SolrInputDocument sd = new SolrInputDocument();
7
8 sd.addField("id", "001");
9 sd.addField("product_name", "solr教程");
10 sd.addField("product_catalog_name", "IT技术");
11 sd.addField("product_description", "很厉害的技术");
12 sd.addField("product_price", 299);
13 sd.addField("product_picture", "001.jpg");
14 //把文档加入服务器
15 client.add(sd);
16 client.commit();
17 }

删除文档

1 public void delDoc() throws Exception {
2 //创建solr客户端的对象
3 HttpSolrClient client = new HttpSolrClient("http://localhost:8080/solr/core");
4 client.deleteById("001");
5 // client.deleteByQuery("product_name:青蛙"); 根据查询删除
6 client.commit();
7 }

查询

public void queryDoc() throws Exception {
//创建solr客户端的对象
HttpSolrClient client = new HttpSolrClient("http://localhost:8080/solr/core");
//创建solr的查询对象
SolrQuery sq = new SolrQuery();
//设置查询条件
sq.set("q", "product_name:青蛙");
sq.set("fq", "product_price:[10 TO 100]");
sq.addSort("product_price",ORDER.asc);
//查询
QueryResponse qr = client.query(sq);
//获得查询结果
SolrDocumentList results = qr.getResults();
//获得查询的记录数
long numFound = results.getNumFound();
System.out.println("查询的记录数是 " + numFound);
for (SolrDocument sd : results) {
//获得文档域
String id = (String) sd.getFieldValue("id");
String product_name = (String) sd.getFieldValue("product_name");
String product_catalog_name = (String) sd.getFieldValue("product_catalog_name");
String product_description = (String) sd.getFieldValue("product_description");
double product_price = (double) sd.getFieldValue("product_price");
System.out.println("--------------");
System.out.println("id " + id);
System.out.println("商品名字 " + product_name);
System.out.println("商品类别名字 " + product_catalog_name);
System.out.println("商品描述 " + product_description);
System.out.println("商品价格 " + product_price);
}
}

带高亮的查询

 1 public void queryDoc1() throws Exception {
2 //创建solr客户端的对象
3 HttpSolrClient client = new HttpSolrClient("http://localhost:8080/solr/core");
4 //创建solr的查询对象
5 SolrQuery sq = new SolrQuery();
6 //设置查询条件
7 sq.set("q", "product_name:青蛙");
8 sq.set("fq", "product_price:[10 TO 100]");
9 sq.addSort("product_price",ORDER.asc);
10 //开启高亮
11 sq.setHighlight(true);
12 sq.addHighlightField("product_name");
13 sq.setHighlightSimplePre("<b>");
14 sq.setHighlightSimplePost("</b>");
15 //查询
16 QueryResponse qr = client.query(sq);
17 //获得查询结果
18 SolrDocumentList results = qr.getResults();
19 //获得查询的记录数
20 long numFound = results.getNumFound();
21 System.out.println("查询的记录数是 " + numFound);
22 for (SolrDocument sd : results) {
23 //获得文档域
24 String id = (String) sd.getFieldValue("id");
25 String product_name = (String) sd.getFieldValue("product_name");
26 String product_catalog_name = (String) sd.getFieldValue("product_catalog_name");
27 String product_description = (String) sd.getFieldValue("product_description");
28 double product_price = (double) sd.getFieldValue("product_price");
29 System.out.println("--------------");
30 System.out.println("id " + id);
31 System.out.println("商品名字 " + product_name);
32 System.out.println("商品类别名字 " + product_catalog_name);
33 System.out.println("商品描述 " + product_description);
34 System.out.println("商品价格 " + product_price);
35 //获得高亮的结构体
36 Map<String, Map<String, List<String>>> highlighting = qr.getHighlighting();
37 if(highlighting != null){
38 //根据id来获得某一个域的高亮的内容
39 Map<String, List<String>> map = highlighting.get(id);
40 //根据具体的域来获得高亮内容
41 List<String> list = map.get("product_name");
42 if(list != null && list.size() > 0){
43 //打印高亮内容
44 for (String str : list) {
45 System.out.println(str);
46 }
47 }
48 }
49 }
50 }

SolrJ使用的更多相关文章

  1. 我与solr(四)--solrJ

    SolrJ索引库: solr提供的一个客户端操作框架,在文件/solr6.2/dist下面可以找到该jar包solrj.jar以及相关jar包,可以使用maven添加. java使用solrJ如下: ...

  2. Solrj和Solr DIH索引效率对比分析

    测试软件环境: 1.16G windows7 x64  32core cpu . 2.jdk 1.7  tomcat 6.x  solr 4.8 数据库软件环境: 1.16G windows7 x64 ...

  3. Solr JAVA客户端SolrJ 4.9使用示例教程

    http://my.oschina.net/cloudcoder/blog/305024 简介 SolrJ是操作Solr的JAVA客户端,它提供了增加.修改.删除.查询Solr索引的JAVA接口.So ...

  4. [solr] - SolrJ增删查

    使用SolrJ进行对Solr的增.删.查功能. 参考引用: http://wiki.apache.org/solr/Solrj Eclipse中新建一个项目:TestSolr 其中SorlJ的Lib包 ...

  5. 【solr】java整合solr5.0之solrj的使用

    1.首先导入solrj需要的的架包 2.需要注意的是低版本是solr是使用SolrServer进行URL实例的,5.0之后已经使用SolrClient替代这个类了,在添加之后首先我们需要根据schem ...

  6. Solr5.3.1 SolrJ查询索引结果

    通过SolrJ获取Solr检索结果 1.通过SolrParams的方式提交查询参数 SolrClient solr = new HttpSolrClient("http://localhos ...

  7. 使用solrj操作solr索引库

    (solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有 ...

  8. Solr使用初探——SolrJ的使用

    二.SolrJ的使用 SolrJ覆盖了solr的全部功能,下面将自己在实际开发中所使用的程序粘贴出来并适当加以解释,由于本人比较菜,代码书写不是那么的精练,还请见谅. 1.  创建solrserver ...

  9. 使用solrj进行DIH操作

    背景说明:在一个项目中需要将Mongodb中的数据导入到solr中完成搜索.在solr中Mysql数据库有对应的DIH包,可以通过配置sql语句完成数据的导入.Mongodb下也有开源的工具用来实现数 ...

  10. 使用solrj操作solr索引库,solr是lucene服务器

    客户端开发 Solrj 客户端开发 Solrj Solr是搭建好的lucene服务器 当然不可能完全满足一般的业务需求 可能 要针对各种的架构和业务调整 这里就需要用到Solrj了 Solrj是Sol ...

随机推荐

  1. JDBC的架构设计

    本文探讨JDBC需要解决的问题及如何解决和设计的,包括: JDBC要解决的问题 数据库事务 JDBC的架构设计 JDBC代码注意点 Spring是如何处理事务 什么是事务的传播特性 Redis事务与数 ...

  2. 《我想进大厂》之mysql夺命连环13问

    想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里? 1. 能说下myisam 和 innodb的区别吗? myisam引擎是5.1版本之前的默认引擎,支持全文检索.压缩 ...

  3. [BUUOJ记录] [HCTF 2018]WarmUp

    BUUOJ Web的第一题,其实是很有质量的一道题,但是不知道为什么成了Solved最多的题目,也被师傅们笑称是“劝退题”,这道题的原型应该是来自于phpMyadmin的一个文件包含漏洞(CVE-20 ...

  4. 06_Python异常处理机制

    1.异常概述 1.什么是错误: 错误是指有逻辑或语法等导致一个程序无法正常执行的问题     2.什么是异常: 异常时程序出错时标识的一种状态,程序不会向下执行而转去调用此函数的地方等待处理错误并恢复 ...

  5. 剑指 Offer 45. 把数组排成最小的数

    题目描述 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: ...

  6. 跟着尚硅谷系统学习Docker-【day08】

    day08-20200723   p32.docker 安装redis   [ docker pull redis] [docker run -p 6397:6397 -v /tmp/mydocker ...

  7. IDEA Activiti 画图中文乱码

    画流程图时,如果节点的name填写的是中文,再次打开流程图时中文会显示乱码,如下图: 修改idea64.exe.vmoptions文件,在文件中加上如下代码: -Dfile.encoding=utf- ...

  8. window.location.href跳转无效

    window.location.href跳转无效     问题情况 JS中设置window.location.href跳转无效   原因是 a标签的href跳转会执行在window.location. ...

  9. MySQL中如何分析查询语句

    Oracle中有explain for,mysql中也有同样的功能,那便是explain,举例如下: mysql> explain select (case (select count(*) f ...

  10. 转载:使用java获取某A股当天/上一交易日的交易基本信息

    整个程序是借用了新浪的对外股票接口http://hq.sinajs.cn/list=sh603696,如果把这个地址放到浏览器地址栏里,你将看到: var hq_str_sh603696=" ...