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 程序管理索引库的更多相关文章

  1. JAVAEE——Solr:安装及配置、后台管理索引库、 使用SolrJ管理索引库、仿京东的电商搜索案例实现

    1 学习回顾 1. Lucene  是Apache开源的全文检索的工具包 创建索引 查询索引 2. 遇到问题? 文件名 及文件内容  顺序扫描法  全文检索 3. 什么是全文检索? 这种先创建索引 再 ...

  2. solrj管理索引库

    solrj管理索引库 1.1. 什么是solrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务, ...

  3. (转)淘淘商城系列——使用solrj来测试索引库

    http://blog.csdn.net/yerenyuan_pku/article/details/72892280 我们使用solrj来操作索引库,一般习惯先建一个单元测试类测试下增删改查方法是否 ...

  4. Solr学习笔记(3) —— SolrJ管理索引库&集群

    一.什么是SolrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 二.SolrJ的基本 ...

  5. 使用solrj操作solr索引库

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

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

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

  7. lucene&solr学习——solr学习(二) Solr管理索引库

    1.什么是solrJ solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 依赖jar包: 2 ...

  8. Solr管理索引库——(十三)

    a)          维护索引 1.  添加/更新文档 添加或更新单个文档

  9. Windows系统环境下Solr之Java实战(三)使用solrJ管理索引库

    https://www.cnblogs.com/zhuxiaojie/p/5764680.html https://www.cnblogs.com/xieyupeng/p/9317158.html

随机推荐

  1. Disciz!NT开源资源汇总

    https://github.com/easonjim/dnt/releases/tag/0

  2. 使用Chrome或Fiddler抓取WebSocket包

    首先,HTTP是建立在TCP协议基础上的,而WebSocket通常也是建立在TCP上,所以说为什么有些网页游戏抓不到包而有些又可以,这仅是因为你使用的抓包工具是针对了HTTP的通信协议. 我先从抽象的 ...

  3. CSS基础知识真难啊

    CSS层叠样式表Cascading Style Sheets CSS派生选择器(上下文选择器): 后代选择器:h1  strong {color:red;}第一个参数和第二个参数之间的代数是可以无限的 ...

  4. jdbc工具类封装

    封装 package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

  5. Unity3d5.0 新UI之2048

    因为汽车系统没写出来所以,纠结之中,弄了弄新版本的UI. 做了个2048. 新版本的unity的UI必须以Canvas为基底来呈现,如果没有加画布的话可是显示不出来东西的哦. 而且作为UI上的所有组件 ...

  6. git本地分支

    1. 新建并切换到该分支 $ git checkout -b iss53 Switched to a new branch 'iss53' 相当于: $ git branch iss53$ git c ...

  7. AngularJs ngClass、ngClassEven、ngClassOdd、ngStyle

    这几个都关于样式及类名修改的,所以先把样式代码贴上吧. .red{color:red} .blue{color:blue} 写案例用到的样式就这么简单的两个,下面进入正题. ngClass ngCla ...

  8. JSP+JavaBean+Servlet+Oracle新增功能中对Date类型的字段的处理

    Oracle库中userinfo表borth字段是Date类型,age年纪字段是int类型.age字段要根据borth来自动计算 先说一下我遇到的问题: insert into的时候遇到日期转换类型错 ...

  9. Character literal must contain exactly one character -- 一天一点小知识

    编程语言高度抽象化以后,错误也越来越让人难以理解了, NET编程最常见的一个错误, Object not set to the reference ,过了好久,才明白过来, 就是不明白为啥微软不说   ...

  10. 2 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之MySql的搭建

    preface 上一节我们讲了DRBD的原理,以及如何部署DRBD,那么现在在上一节的基础上部署Mysql 安装并启动Mysql 为了方便,我一般采用yum安装Mysql.命令如下: 在172.16. ...