solr6.1-----solrJ 程序管理索引库
solrJ 是solr 提供的一个客户端,就是一个jar 包,把jar 添加到工程中整合solr 服务。
所需jar 包
D:\solr-6.1.0\dist 下面的 solr-solrj-6.1.0.jar,以及其依赖 D:\solr-6.1.0\dist\solrj-lib 文件夹下面的所有jar
创建工程添加jar 包
添加 solr 库索引
@Test
public void create() throws Exception{
System.out.println("======================create===============");
@SuppressWarnings({ "resource", "deprecation" })
SolrClient solrClient = new HttpSolrClient("http://127.0.0.1:9090/solr/collection1");
List<SolrInputDocument> docList = new ArrayList<SolrInputDocument>();
String[] titles = {
"chihirotj",
"chihirotj",
"CAS latency",
"CAS latency",
"CAS latency",
"CAS latency chihirotj"};
String[] contents = {
"chihirotj this a vear popular book",
"chihirotj i love you dlp",
"CAS latency a a a a a a a",
"CAS latency you ara bearuiflu",
"CAS latency i love this computer",
"CAS latency hao are you"};
int i = 100;
for(int j = 0; j <= 5; j ++){
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id",i++);
//需要在core1/conf/managed-schema中有对应的field
//在solr 6.1 版本中已经不需要了,会自己动态的创建域,类型为strings
doc.addField("title", titles[j]);
doc.addField("content", contents[j]);
docList.add(doc);
}
UpdateResponse rsp = solrClient.add(docList);
System.out.println("Add doc size" + docList.size() + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime());
UpdateResponse rspcommit = solrClient.commit();
System.out.println("commit doc to index" + " result:" + rsp.getStatus() + " Qtime:" + rspcommit.getQTime());
}
之后在 管理员页面查询数据:点击query 能够查询出,刚刚添加的数据,则添加数据成功。
  
默认添加的域为 strings 类型。我们需要修改类型,使用能够解析字符串的分词器(title 域lz已经做了修改)

查询 solr 索引库
@Test
public void query(){
System.out.println("======================query===================");
SolrClient solrClient = new HttpSolrClient("http://127.0.0.1:9090/solr/collection1");
SolrQuery query = new SolrQuery();
//查询条件
query.setQuery("chihirotj");
//高亮字段
query.setParam("hl.fl", "title");
//开启高亮
query.setHighlight(true);
//返回的字符个数
query.setHighlightFragsize(200);
//是否需要完全匹配
//query.setHighlightRequireFieldMatch(true);
//前缀
query.setHighlightSimplePre("<em>");
//后缀
query.setHighlightSimplePost("</em>");
QueryResponse response = null;
try {
response = solrClient.query(query);
System.out.println(response.toString());
System.out.println();
SolrDocumentList docs = response.getResults();
Map<String, Map<String, List<String>>> maps = response.getHighlighting();
System.out.println("文档个数:" + docs.getNumFound());
System.out.println("查询时间:" + response.getQTime());
for (SolrDocument doc : docs) {
//配置分词后
System.out.println("id: " + doc.getFieldValue("id") + " title: " + doc.getFieldValue("title"));
}
for (Map<String, List<String>> map : maps.values()) {
List<String> title = map.get("title");
//高量的值
System.out.println(title.iterator().next());
}
} catch (Exception e) {
e.printStackTrace();
}
}
运行结果:
    
  
删除 索引库
@Test
public void deleteById() {
System.out.println("======================deleteById ===================");
SolrClient solrClient = new HttpSolrClient("http://127.0.0.1:9090/solr/collection1");
try {
String[] ids = {"1", "2", "4"};
for (String id : ids) {
UpdateResponse rsp = solrClient.deleteById(id);
System.out.println("delete id:" + id + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime());
}
solrClient.commit();
} catch (SolrServerException | IOException e) {
e.printStackTrace();
}
}
参考:
http://www.cnblogs.com/feiye512/p/5630684.html
http://lucene.apache.org/solr/6_1_0/solr-solrj/org/apache/solr/client/solrj/SolrClient.html
solr6.1-----solrJ 程序管理索引库的更多相关文章
- JAVAEE——Solr:安装及配置、后台管理索引库、 使用SolrJ管理索引库、仿京东的电商搜索案例实现
		1 学习回顾 1. Lucene 是Apache开源的全文检索的工具包 创建索引 查询索引 2. 遇到问题? 文件名 及文件内容 顺序扫描法 全文检索 3. 什么是全文检索? 这种先创建索引 再 ... 
- solrj管理索引库
		solrj管理索引库 1.1. 什么是solrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务, ... 
- (转)淘淘商城系列——使用solrj来测试索引库
		http://blog.csdn.net/yerenyuan_pku/article/details/72892280 我们使用solrj来操作索引库,一般习惯先建一个单元测试类测试下增删改查方法是否 ... 
- Solr学习笔记(3) —— SolrJ管理索引库&集群
		一.什么是SolrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 二.SolrJ的基本 ... 
- 使用solrj操作solr索引库
		(solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有 ... 
- 使用solrj操作solr索引库,solr是lucene服务器
		客户端开发 Solrj 客户端开发 Solrj Solr是搭建好的lucene服务器 当然不可能完全满足一般的业务需求 可能 要针对各种的架构和业务调整 这里就需要用到Solrj了 Solrj是Sol ... 
- lucene&solr学习——solr学习(二) Solr管理索引库
		1.什么是solrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 依赖jar包: 2 ... 
- Solr管理索引库——(十三)
		a) 维护索引 1. 添加/更新文档 添加或更新单个文档 
- Windows系统环境下Solr之Java实战(三)使用solrJ管理索引库
		https://www.cnblogs.com/zhuxiaojie/p/5764680.html https://www.cnblogs.com/xieyupeng/p/9317158.html 
随机推荐
- Disciz!NT开源资源汇总
			https://github.com/easonjim/dnt/releases/tag/0 
- 使用Chrome或Fiddler抓取WebSocket包
			首先,HTTP是建立在TCP协议基础上的,而WebSocket通常也是建立在TCP上,所以说为什么有些网页游戏抓不到包而有些又可以,这仅是因为你使用的抓包工具是针对了HTTP的通信协议. 我先从抽象的 ... 
- CSS基础知识真难啊
			CSS层叠样式表Cascading Style Sheets CSS派生选择器(上下文选择器): 后代选择器:h1 strong {color:red;}第一个参数和第二个参数之间的代数是可以无限的 ... 
- jdbc工具类封装
			封装 package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ... 
- Unity3d5.0 新UI之2048
			因为汽车系统没写出来所以,纠结之中,弄了弄新版本的UI. 做了个2048. 新版本的unity的UI必须以Canvas为基底来呈现,如果没有加画布的话可是显示不出来东西的哦. 而且作为UI上的所有组件 ... 
- git本地分支
			1. 新建并切换到该分支 $ git checkout -b iss53 Switched to a new branch 'iss53' 相当于: $ git branch iss53$ git c ... 
- AngularJs ngClass、ngClassEven、ngClassOdd、ngStyle
			这几个都关于样式及类名修改的,所以先把样式代码贴上吧. .red{color:red} .blue{color:blue} 写案例用到的样式就这么简单的两个,下面进入正题. ngClass ngCla ... 
- JSP+JavaBean+Servlet+Oracle新增功能中对Date类型的字段的处理
			Oracle库中userinfo表borth字段是Date类型,age年纪字段是int类型.age字段要根据borth来自动计算 先说一下我遇到的问题: insert into的时候遇到日期转换类型错 ... 
- Character literal must contain exactly one character -- 一天一点小知识
			编程语言高度抽象化以后,错误也越来越让人难以理解了, NET编程最常见的一个错误, Object not set to the reference ,过了好久,才明白过来, 就是不明白为啥微软不说 ... 
- 2 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之MySql的搭建
			preface 上一节我们讲了DRBD的原理,以及如何部署DRBD,那么现在在上一节的基础上部署Mysql 安装并启动Mysql 为了方便,我一般采用yum安装Mysql.命令如下: 在172.16. ... 
