solor mysql_solr7.4.0+mysql+solrj(简而优美)
目录:
1 solr7部署+创建核心
2 solr mysql 连接
2.1 导入相关 jar包
2.2 配置连接信息
2.3 配置中文分析器
3 solrj JAVA客户端应用
3.1 solrj 构建和运行
3.2 solrj 应用(数据的 增、删、改、查)
3.3 solrj JavaBean 整合应用
1 solr7部署+创建核心
solr7需要java8环境,且需要在环境变量中添加 JAVA_HOME变量。
solr有两种启动模式:
独立模式:适用于数据规模不大的场景
云模式:适用于数据规模大,高可靠、高可用、高并发的场景,基于zookeeper中间件
独立模式是以 (core/核心) 来管理,云模式是以(collection/集合)来管理。
本教程使用独立模式,请到apache官网下载压缩包windows版,solr-7.4.0.zip / 压缩到本地
cd solr-7.4.0/bin/ 常用命令:
solr.cmd start 启动 默认端口:8983
solr.cmd stop -all 停止
solr.cmd create -c [options] 创建核心
solr.cmd status 运行状态
首先启动solr 执行命令 solr.cmd start 并在浏览器下能访问到下图所示则表示访问成功
然后创建核心 ,这里我的核心名字叫bless solr.cmd start -c bless 。下图表示创建成功
新创建core核心的目录位置
2 solr mysql 连接
2.1 导入相关 jar包
2.1.1 下载 mysql 驱动包:mysql-connector-java-x.x.x.jar
2.1.2 将 mysql 驱动包导入 solr :将下载下来的 mysql-connector-java-x.x.x.jar 拷贝到 solr-7.4.0serversolr-webappwebappWEB-INFlib 下;
2.1.3 将solr{home}dist目录下的:solr-dataimporthandler-7.4.0.jar和solr-dataimporthandler-extras-7.4.0.jar这两个jar包拷贝到 solr-7.4.0serversolr-webappwebappWEB-INFlib下
2.2 配置连接信息
把solr-7.4.0exampleexample-DIHsolrdb下的文件复制到你创建的core里面 --> solr-7.4.0serversolrbless
打开conf目录在db-data-config.xml和managed-schema中进行配置
我的数据库表信息
db-data-config.xml配置数据库连接信息
这个地方要注意一下 ,field主键必须设置为name="id",否则solr找不到主键会出现问题,为什么?看一下managed-schema配置文件中的这个主键配置
然后去managed-schema里配置对应的field字段,这个也可以在管理端直接添加,也可以手动修改配置文件,name属性要与db-data-config.xml 文件中name属性一致
好了配置完毕。重启solr,导入数据
查询数据库记录是否导入
2.3 配置中文分析器
在solr-7.4.0/contrib/analysis-extras/lucene-libs下找到lucene-analyzers-smartcn-7.4.0.jar copy 到 solr-7.4.0serversolr-webappwebappWEB-INFlib
修改conf/managed-schema 添加如下配置信息,并重新启动solr
使用中文分析
不使用中文分析
给数据库字段配置中文分析,需要修改managed-schema配置文件 type="text_ik",具体应用本教程不再涉及。
3 solrj JAVA客户端应用
solrJ是访问Solr服务的JAVA客户端,提供索引和搜索的请求方法,SolrJ通常嵌入在业务系统中,通过solrJ的API接口操作Solr服务。
示例数据还是应用上面mysql数据库导入的
3.1 solrj 构建和运行
添加maven依赖
org.apache.solr
solr-solrj
7.4.0
3.2 solrj 应用(数据的 增、删、改、查)
获取HttpSolrClient 连接
private static final String solrUrl="http://localhost:8983/solr/bless";
//创建solrClient同时指定超时时间,不指定走默认配置
private static HttpSolrClient client=new HttpSolrClient.Builder(solrUrl)
.withConnectionTimeout(10000)
.withSocketTimeout(60000).build();
3.2.1 solrj 查询
@Test
public void querySolr() throws Exception{
//封装查询参数
SolrQuery query = new SolrQuery("*:*");
//添加需要回显得内容
query.addField("id");
query.addField("blessContent");
query.addField("blessTime");
query.setRows(20);//设置每页显示多少条
//执行查询返回QueryResponse
QueryResponse response = client.query(query);
//获取doc文档
SolrDocumentList documents = response.getResults();
for(SolrDocument solrDocument:documents){
System.out.println(solrDocument.get("id"));
System.out.println(solrDocument.get("blessContent"));
System.out.println(solrDocument.get("blessTime"));
}
//关闭资源
client.close();
}
测试信息
3.2.2 solrj 增加/修改 修改是id不变其他字段变更
@Test
public void solrAdd() throws Exception{
//创建文档doc
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", 21);
doc.addField("blessContent", "solrj add");
doc.addField("blessTime",new Date());
//添加到client
UpdateResponse updateResponse = client.add(doc);
//索引文档必须commit
client.commit();
}
在管理端查看一下刚才添加的信息
3.2.3 solrj 删除 删除有3种方式
@Test
public void solrDelete() throws Exception{
//1 通过id 删除
client.deleteById("1");
//2 通过id List 删除
ArrayList ids = new ArrayList();
ids.add("2");
ids.add("3");
client.deleteById(ids);
//3 通过 查询信息删除
client.deleteByQuery("id:4");
// 提交
client.commit();
// 关闭资源
client.close();
}
3.3 solrj javaBean 整合应用
SolrJ支持通过@Field注解隐式转换文档与任何类。每个实例变量在Java对象可以映射到一个相应的Solr字段中,使用 field注解。
solr的fieldtype属性
javaBean 属性类型
string
String
boolean
Boolean
pint
Integer
pdouble
Double
plong
Long
pfloat
Float
pdate
Date
创建实体类:
public classBless {
@FieldprivateString id;
@FieldprivateString blessContent;
@FieldprivateDate blessTime;publicString getId() {returnid;
}public voidsetId(String id) {this.id =id;
}publicString getBlessContent() {returnblessContent;
}public voidsetBlessContent(String blessContent) {this.blessContent =blessContent;
}publicDate getBlessTime() {returnblessTime;
}public voidsetBlessTime(Date blessTime) {this.blessTime =blessTime;
}
}
3.3.1 solrj + javaBean 查询
@Testpublic void queryBean() throwsException{
SolrQuery query= new SolrQuery("*:*");//添加需要回显得内容
query.addField("id");
query.addField("blessContent");
query.addField("blessTime");
query.setRows(20);//设置每页显示多少条//执行查询返回QueryResponse
QueryResponse response =client.query(query);//获取doc文档
List blessList=response.getBeans(Bless.class);for(Bless bless:blessList){
System.out.println(bless.getId());
System.out.println(bless.getBlessContent());
System.out.println(bless.getBlessTime());
}
client.close();
}
3.3.2 solrj + javaBean 增加
@Testpublic void addBean() throwsException{
Bless bless=newBless();
bless.setId("19");
bless.setBlessContent("solr java bean add");
bless.setBlessTime(newDate());//添加对象
UpdateResponse response =client.addBean(bless);//提交操作
client.commit();//关闭资源
client.close();
}
至此,solr 简单应用已经介绍完毕。本篇文章属于简单优美型,并未深入探索,希望能帮助到各位同学。如需帮助可在博客下方留言。
内容来源于网络如有侵权请私信删除
solor mysql_solr7.4.0+mysql+solrj(简而优美)相关推荐
- solrj mysql_solr7.4.0+mysql+solrj(简而优美)
目录: 1 solr7部署+创建核心 2 solr mysql 连接 2.1 导入相关 jar包 2.2 配置连接信息 2.3 配置中文分析器 3 solrj JAVA客户端应用 3.1 solrj ...
- solr7.4.0+mysql+solrj(简而优美)
目录: 1 solr7部署+创建核心 2 solr mysql 连接 2.1 导入相关 jar包 2.2 配置连接信息 2.3 配置中文分析器 3 solrj JAVA客户端应用 3.1 solrj ...
- Eclipse 3.5 Classic+Tomcat 6.0+MySql 5.5搭建java web开发环境
Eclipse 3.5 Classic+Tomcat 6.0+MySql 5.5搭建java web开发环境 对于初学者来说,如果没有接触过java web开发的话,搭建开发环境将是一个门槛.以前一直 ...
- 最新版freetextbox(版本3.1.6)在asp.net 2.0中使用简解
最新版freetextbox(版本3.1.6)在asp.net 2.0中使用简解 2008-10-14 12:21 简介:对于FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用,只 ...
- 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载)
来源:cleocn.com 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载) 简介:对于FreeTextBox(版本3.1.6)在ASP.Net ...
- zabbix4.0 mysql本地数据库迁移到腾讯云数据库
转载来源 :zabbix4.0 mysql本地数据库迁移到腾讯云数据库 : https://www.jianshu.com/p/19e40d853466 原环境:centos7.2 mysql5.7 ...
- 搭建区块链浏览器——基于hyperledger fabric 1.0,MySQL容器
搭建区块链浏览器--基于hyperledger fabric 1.0,MySQL容器 区块链 hyperledger fabric 浏览器 MySQL docker Contents 环境要求 分支 ...
- 等级保护测评2.0 mysql 数据库
等级保护测评2.0 mysql 数据库 安全控制点 控制项 测评方法 预期结果或主要证据 身份鉴别 a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换: ...
- php+mysql网站开发全程实例 于荷云 pdf_《PHP 7 0+MySQL网站开发全程实例》于荷云著【摘要 书评 在线阅读】-苏宁易购图书...
商品参数 作者: 于荷云著 出版社:清华大学出版社 出版时间:2018-06-01 版次:1 开本:16开 装帧:平装 ISBN:9787302503170 版权提供:清华大学出版社 基本信息 书名: ...
最新文章
- python发送邮件拒绝_人生苦短之Python发邮件
- Qt Creator比较文件
- 软件工程专业(互联网应用开发与优化方向)软件工程实践二环节教学大纲
- iOS中如何优化Cell中图片的下载性能
- 斜堆学习笔记+复杂度证明
- 【软件工程】容错、高可用、灾备の辨析
- 数据挖掘–聚类思维导图
- soul刷屏编程代码_奔涌吧,编程!少儿编程教育在未来会像语文,数学一样重要!...
- 一印度学生Asp.net源码分享讨论
- 卷积(convolution)与相关(correlation)(matlab 实现)
- CSS控制显示超出部分,用省略号显示
- rup 裁剪_建筑企业信息系统RUP裁剪模型及其应用研究
- c语言 分数通分,如何用C语言,实现简单的分数化简
- Java程序员培训班有用吗?是否专业
- iOS @available 和 #available 的用法
- iOS开发系列--NextPrevious On-Demand Resource Basics
- 进击的巨人和枪王黑泽两部漫画的观后感
- leecode试题 178. 分数排名
- PHP学生学校在线考试管理系统,MYSQL数据库网页设计
- Extraneous non-emits event listeners (onJump) were passed to component but could not be automaticall