SolrJ使用
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使用的更多相关文章
- 我与solr(四)--solrJ
SolrJ索引库: solr提供的一个客户端操作框架,在文件/solr6.2/dist下面可以找到该jar包solrj.jar以及相关jar包,可以使用maven添加. java使用solrJ如下: ...
- Solrj和Solr DIH索引效率对比分析
测试软件环境: 1.16G windows7 x64 32core cpu . 2.jdk 1.7 tomcat 6.x solr 4.8 数据库软件环境: 1.16G windows7 x64 ...
- Solr JAVA客户端SolrJ 4.9使用示例教程
http://my.oschina.net/cloudcoder/blog/305024 简介 SolrJ是操作Solr的JAVA客户端,它提供了增加.修改.删除.查询Solr索引的JAVA接口.So ...
- [solr] - SolrJ增删查
使用SolrJ进行对Solr的增.删.查功能. 参考引用: http://wiki.apache.org/solr/Solrj Eclipse中新建一个项目:TestSolr 其中SorlJ的Lib包 ...
- 【solr】java整合solr5.0之solrj的使用
1.首先导入solrj需要的的架包 2.需要注意的是低版本是solr是使用SolrServer进行URL实例的,5.0之后已经使用SolrClient替代这个类了,在添加之后首先我们需要根据schem ...
- Solr5.3.1 SolrJ查询索引结果
通过SolrJ获取Solr检索结果 1.通过SolrParams的方式提交查询参数 SolrClient solr = new HttpSolrClient("http://localhos ...
- 使用solrj操作solr索引库
(solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有 ...
- Solr使用初探——SolrJ的使用
二.SolrJ的使用 SolrJ覆盖了solr的全部功能,下面将自己在实际开发中所使用的程序粘贴出来并适当加以解释,由于本人比较菜,代码书写不是那么的精练,还请见谅. 1. 创建solrserver ...
- 使用solrj进行DIH操作
背景说明:在一个项目中需要将Mongodb中的数据导入到solr中完成搜索.在solr中Mysql数据库有对应的DIH包,可以通过配置sql语句完成数据的导入.Mongodb下也有开源的工具用来实现数 ...
- 使用solrj操作solr索引库,solr是lucene服务器
客户端开发 Solrj 客户端开发 Solrj Solr是搭建好的lucene服务器 当然不可能完全满足一般的业务需求 可能 要针对各种的架构和业务调整 这里就需要用到Solrj了 Solrj是Sol ...
随机推荐
- 推荐一款万能抓包神器:Fiddler Everywhere
搞IT技术的同行,相信没有几个人是不会抓包这项技能的(如果很不幸你中枪了,那希望这篇文章给你一些动力),市面上的抓包工具也有很多,常用的有:Charles.Fiddler.Burpsuite.Wire ...
- Kubernetes Operator基础入门
本文转自Rancher Labs 你是否曾经想过SRE团队是如何有效地成功管理复杂的应用?在Kubernetes生态系统中,Kubernetes Operator可以给你答案.在本文中,我们将研究Op ...
- JavaScript 究竟是怎样去执行的?
摘要: 理解 JS 引擎运行原理. 作者:前端小智 原文:搞懂 JavaScript 引擎运行原理 Fundebug经授权转载,版权归原作者所有. 一些名词 JS 引擎 — 一个读取代码并运行的引擎, ...
- [WUST-CTF]Web WriteUp
周末放假忙里偷闲打了两场比赛,其中一场就是武汉科技大学的WUST-CTF新生赛,虽说是新生赛,题目质量还是相当不错的.最后有幸拿了总排第5,记录一下Web的题解. checkin 进入题目询问题目作者 ...
- JS中写继承的方式
有父子两个函数,代表两个类: var parent = function(){} var child = function(){} 一.直接继承 child.prototype = new paren ...
- Linux安装配置Flume
概述 Apache Flume是一个分布式,可靠且可用的系统,用于高效地收集,汇总和将来自多个不同源的大量日志数据移动到集中式数据存储.Apache Flume的使用不仅限于日志数据聚合.由于数据源是 ...
- CVE-2020-0796(永恒之黑)漏洞复现
声明:仅供学习与参考,请勿用于非法用途(后果自负) 一.影响范围(需关闭 Win10 防火墙): Windows 10 Version 1903 for 32-bit Systems Windows ...
- 部署zabbix监控服务器,部署主动监控
1.1部署服务运行环境 LNMP#yum -y install gcc pcre-devel zlib-devel openssl-devel #tar -zxvf nginx-1.12.2.ta ...
- time模块:时间戳和格式化好的时间表示方法及互相转换方法
1.导入time模块 import time 2.获取当前时间的时间戳 time.time() 3.获取当前格式化好的时间 time.strftime(想要获取的格式) 4.时间戳和格式化 ...
- maoge数
maoge数 题目描述 maoge定义一个数x是maoge数的条件,当且仅当x的各数位之和等于 x / 2向下取整,现在maoge想让你求 n 的约数中有多少个maoge数 输入格式 输入一个数 n ...