目录:

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.0\server\solr-webapp\webapp\WEB-INF\lib 下;

2.1.3  将solr{home}\dist目录下的:solr-dataimporthandler-7.4.0.jar和solr-dataimporthandler-extras-7.4.0.jar这两个jar包拷贝到 solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib下

2.2 配置连接信息

把solr-7.4.0\example\example-DIH\solr\db下的文件复制到你创建的core里面 --> solr-7.4.0\server\solr\bless

打开conf目录在db-data-config.xml和managed-schema中进行配置

我的数据库表信息

db-data-config.xml配置数据库连接信息

<dataConfig><dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3307/leslia" user="root" password="root" /><document><entity name="bless" query="select * from bless"><field column="bless_id"         name="id" /><field column="bless_content"     name="blessContent" /><field column="bless_time"     name="blessTime"/></entity></document>
</dataConfig>

这个地方要注意一下 ,field主键必须设置为name="id",否则solr找不到主键会出现问题,为什么?看一下managed-schema配置文件中的这个主键配置

然后去managed-schema里配置对应的field字段,这个也可以在管理端直接添加,也可以手动修改配置文件,name属性要与db-data-config.xml 文件中name属性一致

<field name="blessContent" type="text_general" indexed="true" stored="true"/>
<field name="blessTime" type="pdate" indexed="true" stored="true"/>

好了配置完毕。重启solr,导入数据

查询数据库记录是否导入

2.3 配置中文分析器

在solr-7.4.0/contrib/analysis-extras/lucene-libs下找到lucene-analyzers-smartcn-7.4.0.jar  copy 到 solr-7.4.0\server\solr-webapp\webapp\WEB-INF\lib

修改conf/managed-schema 添加如下配置信息,并重新启动solr

<!-- ChineseAnalyzer -->
<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"><analyzer type="index"><tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/></analyzer><analyzer type="query"><tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/></analyzer>
</fieldType>

使用中文分析

不使用中文分析

给数据库字段配置中文分析,需要修改managed-schema配置文件 type="text_ik",具体应用本教程不再涉及。

<field name="blessContent" type="text_ik" indexed="true" stored="true"/>
<field name="blessTime" type="pdate" indexed="true" stored="true"/>


3  solrj JAVA客户端应用

solrJ是访问Solr服务的JAVA客户端,提供索引和搜索的请求方法,SolrJ通常嵌入在业务系统中,通过solrJ的API接口操作Solr服务。

示例数据还是应用上面mysql数据库导入的

3.1 solrj 构建和运行

添加maven依赖

<dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>7.4.0</version>
</dependency>

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 查询

    @Testpublic void querySolr() throws Exception{//封装查询参数SolrQuery query = new SolrQuery("*:*");//添加需要回显得内容query.addField("id");query.addField("blessContent");query.addField("blessTime");query.setRows(20);//设置每页显示多少条//执行查询返回QueryResponseQueryResponse 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不变其他字段变更

   @Testpublic void solrAdd() throws Exception{//创建文档docSolrInputDocument doc = new SolrInputDocument();doc.addField("id", 21);doc.addField("blessContent", "solrj add");doc.addField("blessTime",new Date());//添加到clientUpdateResponse updateResponse = client.add(doc);//索引文档必须commitclient.commit();}

在管理端查看一下刚才添加的信息

 3.2.3 solrj 删除  删除有3种方式

   @Testpublic void solrDelete() throws Exception{//1 通过id 删除client.deleteById("1");//2 通过id List 删除ArrayList<String> ids = new ArrayList<String>();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 class Bless {@Fieldprivate String id;@Fieldprivate String blessContent;@Fieldprivate Date blessTime;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getBlessContent() {return blessContent;}public void setBlessContent(String blessContent) {this.blessContent = blessContent;}public Date getBlessTime() {return blessTime;}public void setBlessTime(Date blessTime) {this.blessTime = blessTime;}}

3.3.1 solrj + javaBean 查询

    @Testpublic void queryBean() throws Exception{SolrQuery query = new SolrQuery("*:*");//添加需要回显得内容query.addField("id");query.addField("blessContent");query.addField("blessTime");query.setRows(20);//设置每页显示多少条//执行查询返回QueryResponseQueryResponse response = client.query(query);//获取doc文档List<Bless> 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() throws Exception{Bless bless=new Bless();bless.setId("19");bless.setBlessContent("solr java bean add");bless.setBlessTime(new Date());//添加对象UpdateResponse response = client.addBean(bless);//提交操作
        client.commit();//关闭资源
        client.close();}

至此,solr 简单应用已经介绍完毕。本篇文章属于简单优美型,并未深入探索,希望能帮助到各位同学。如需帮助可在博客下方留言。

转载于:https://www.cnblogs.com/leslia/p/9544202.html

solr7.4.0+mysql+solrj(简而优美)相关推荐

  1. 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 ...

  2. 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. solr7.4.0入门,分词,实时增量同步

    Solr入门 Solr入门介绍 一.下载与安装 1.下载 1.1下载solr 1.2 下载IKAnalyzer中文分词器 2.解压 二.运行solr 三.创建core实例 四.配置schema 五.D ...

  4. CentOS7.5 Linux搭建全文检索--Solr7.4.0单机服务

    一.Solr安装环境 1.官方参考文档 Solr教程参考指南:http://lucene.apache.org/solr/guide/7_4/solr-tutorial.html 2.Solr运行环境 ...

  5. 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开发的话,搭建开发环境将是一个门槛.以前一直 ...

  6. 最新版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中使用,只 ...

  7. 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载)

    来源:cleocn.com 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载) 简介:对于FreeTextBox(版本3.1.6)在ASP.Net ...

  8. zabbix4.0 mysql本地数据库迁移到腾讯云数据库

    转载来源 :zabbix4.0 mysql本地数据库迁移到腾讯云数据库 : https://www.jianshu.com/p/19e40d853466 原环境:centos7.2 mysql5.7 ...

  9. 搭建区块链浏览器——基于hyperledger fabric 1.0,MySQL容器

    搭建区块链浏览器--基于hyperledger fabric 1.0,MySQL容器 区块链 hyperledger fabric 浏览器 MySQL docker  Contents 环境要求 分支 ...

最新文章

  1. 图像数据集如何制作?增强??
  2. SylixOS ARP攻击解决办法
  3. 文档标题:WinNTWin2K下实现进程的完全隐藏
  4. python有道词典-利用Python3和Charles爬取有道词典
  5. 郝斌--数据结构---汉诺塔实现(c语言实现)
  6. es5如何实现promise_彻底理解Promise对象——用es5语法实现一个自己的Promise(上篇)...
  7. Vue源码解析之数组变异
  8. ubuntu20.04下安装vmshare tools_Go语言的安装与配置-vscode
  9. 当程序员真难,又一次被编辑器坑了!
  10. Spark面对OOM问题的解决方法及优化总结
  11. java里面super(),Java中super
  12. 根目录_ubuntu 18.04 server版根目录只有4G?
  13. asp.net5开发中DNX SDK版本的影响
  14. 版本管理工具git常用命令
  15. 用matlab计算矩阵的权重,如何使用matlab计算加权平均分
  16. 精致露营“风”,“吹”进小家电市场
  17. 光纤交换机与普通交换机的区别
  18. Android 质量优化工具 Booster实践
  19. NO_DATA_FOUND和%NOTFOUND的区别
  20. 基于java的扫雷游戏设计01

热门文章

  1. SAP Gigya(SAP Customer Data Cloud)的数据中心
  2. SAP Customer Data Cloud的administrator设置
  3. SAP CRM呼叫中心搜索Max hit的配置点
  4. 关于SAP成都研究院的一些微信公众号文章
  5. 如何将S/4HANA系统存储的图片文件用Java程序保存到本地
  6. ionic2 html 转义,ionic2 基于ngx-translate实现多语言切换,翻译
  7. 【测试思考】测试段位之测试六段
  8. 离散信号的希尔伯特变换的计算公式_希尔伯特变换和瞬时频率问题--连载(二)...
  9. python类的成员函数_注入一个python类成员函数
  10. mysql授权无密码用户_MySQL下新建用户,授权,删除用户,修改密码