集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Java >

成都java短期培训班:Lucene和solr基础使用介绍

发布者: 成都达内     浏览次数:     发布时间:2020-08-04 14:17:16

成都java短期培训班:Lucene和solr基础使用介绍,solr是对lucene的封装:1.lucene可以完成的功能,使用solr可以用更简单更方便的方法完成同样的功能。...

  solr是对lucene的封装:

  1.lucene可以完成的功能,使用solr可以用更简单更方便的方法完成同样的功能。

  Like : 顺序扫描法

  从文档头一直扫描到文档尾,直到找到为止,速度很慢。

  全文检索技术(倒排索引):

  作用:

  1.可以帮我们实现;类似于百度或者谷歌一样的搜索引擎

  2.可以帮我们实现类似京东或淘宝一样的站内商品搜索功能

  3.可以帮我们实现;类似贴吧或者论坛等一些站内搜索帖子的功能

  4.可以帮我们实现类似智能客服的功能

  5.智能机器人

  原理(特点):

  1.在搜索之前,先对关键词进行分词

  2.索引库:文档集合、索引目录

  a:增加文档的时候先对文档进行分词

  b:将分的词放入索引目录中,并记录该词在哪些文档中出现了多少次

  c:根据关键词分的词到索引库中去唯一匹配速度非常快。

  3.相关度排序:

  a:一个词在这个文档中出现的次数越多,排序越靠前。

  4.一个词在很多文档中都出现了,那么就会降低这个词的权重值。

  数据查询的方法:

  顺序扫描法

  倒排索引

  添加流程:

  1.采集数据,从数据库中获取。

  2.创建文档对象Document

  3.创建域来存储要带出来的值。使用对象 Field (new TextField),需要带出来的几个值,就创建几个域对象。

  4.将创建出来的域放入到文档对象中。

  5.创建一个文档对象的集合。将每一次装好的文档对象放入到集合中。

  6.创建IndexWriter对象,用来写入对象到索引库,需要的参数是:

  a: 索引库要存储的地方,一个磁盘目录对象(Directory,一个接口,使用子类对象FSDirectory,磁盘对象)。

  b: 一个可以写入索引配置的对象。IndexWriterConfig对象。参数是一个是版本信息(Version.?),参数二是一个分词器对象。

  7.创建Directory对象、IndexWriterConfig对象。因为IndexWriterConfig对象的参数需要一个分词器对象。所以...

  8.创建分词器对象。Analyzer,也是一个接口,子类:StandardAnalyzer();这个子类只对英文分词有效。所以国人写了一个对中文有效的分词器对象 IKAnalyzer对象。

  9.将拿到的所有的文档对象写入到索引库中,使用IndexWriter对象添加Document对象。

  10.提交、关流。IndexWriter是一个流对象

  查询流程:

  1.创建语法解析器QueryParser对象

  参数一:从哪个域值里面查

  参数二:分词器

  2.创建查询语法Query对象,使用语法解析器对象调用parse方法,执行查询语句,返回Query对象

  3.创建读索引的对象IndexReader,是一个接口,需要调用open方法来创建读索引的对象。

  参数是:创建磁盘对象,找到索引库的位置,调用的是open方法

  4.创建查询对象IndexSearcher.

  5.执行Query对象,使用search方法

  参数一:查询语句对象

  参数二:显示几条

  6.查询打过分的文档集合。使用TopDocs对象调用scoreDocs方法。返回一个数组。里面装的是要显示的前几条文档。

  7.使用indexSercher对象调用doc方法,通过Luncene自动生成的文档id来查找文档。(查找id等属性用的是索引库中的属性名来查找的)

  8.关流

  分词器的使用时机:

  1.在创建索引库的时候

  2.在查询的时候

  通用Mapper:

  接口继承Mapper接口,不用写方法,Mapper接口里面提供了方法,可以进行单表的查询。如果想要进行多表的关联查询。可以自己自定义xml。实体类:加注解,类上:@Table 如果类名和数据库的名字一样的话可以不加这个注解。属性的话:@Column 如果实体类的属性名和数据库的属性名一致则可以不写这个注解。主键:加@Id注解,还有主键生成策略。加注解@GeneratedValue(strategy=GenerationType.IDENTITY)主键自增

  成都java短期培训班:Lucene和solr基础使用介绍

  查询

  成都java短期培训班:Lucene和solr基础使用介绍

  Lucene的field域

  我们用到的每一个域,都需要考虑三件事情

  1.是否需要分词

  目的:创建索引

  2.是否需要索引

  目的:快速搜索

  3.是否需要存储

  目的:是否在前台显示

  成都java短期培训班:Lucene和solr基础使用介绍

  TextField:文本和流类型

  必须分词、必须索引

  数字域:(IntField、LongField、doubleField、FloatField)

  必须分词:lucene对数据域采用的是一种特殊的分词方法,这种分词方法可以让数字域比较大小更快。lucene底层规定死的

  必须索引

  StringField:文本域,一般用于作为一个唯一整体,进行创建索引,一般用于主键id

  必须不分词

  必须索引

  StoredField:存储域

  必须不分词

  必须不索引

  必须存储

  2.lucene的维护

  lucene其实没有所谓的修改功能,其实所谓的修改功能就是先删除后添加

  查询的第一种方式

  1.使用QueryParser对象创建Query对象来查询

  可以指定默认域和使用分词域

  2.直接创建TermQuery对象来查询、

  不能指定默认域,也不可以使用分词,不常用

  3.数字范围查询

  NumericRangeQuery不可以直接new对象,需要调用.new...方法创建对象

  4.组合查询

  BooleanQuery:

  5.指定多个默认搜索域

  MultiFieldQueryParser

  相关度排序:

  Term Frequency (tf):一个次在一片文档中出现的次数越多权重越高

  Doucment Frequency(df):一个词在多少文档中出现了,出现的文档越多,改词的权值越低

  权重值没有最大,只有更大

  设置权重值:

  域 . setBoost(值);

  solr介绍:模糊查询的时候使用solr

  全文检索系统,对外提供的http服务

  1.solr可以直接部署到web容器里面。对外提供对说衣裤增删改查的api

  2.要么你可以使用solrJ客户端调用solr的api完成对索引库的增删改查的api

  solr的环境搭建:

  1.准备一台tomcat,并更改端口号,三个端口号

  2.把解压后的solr项目拷贝到tomcat/wabapps下

  3.将example/lib/ext下的日志jar包拷贝到solr项目的lib里

  4.将example/solr拷贝出来并改名为solrHome(随意)

  5.在solr项目

  成都java短期培训班:Lucene和solr基础使用介绍

  web客户介绍

  成都java短期培训班:Lucene和solr基础使用介绍

  Solr可以有多个索引库

  Solr的添加修改使用步骤:

  1.创建solr服务,SolrServer server = new HttpSolrServer(solr索引库的地址,浏览器上的);默认指定第一个索引库。

  成都java短期培训班:Lucene和solr基础使用介绍

  2.进行添加文档。使用add方法。参数需要SolrInputDocument对象。

  3.创建SolrInputDocument对象

  4.添加域。

  5.返回response。

  6.提交

  Solr的删除:

  1.创建solr服务,SolrServer server = new HttpSolrServer(solr索引库的地址,浏览器上的);默认指定第一个索引库。

  成都java短期培训班:Lucene和solr基础使用介绍

  2.通过id删除deleteById("id");

  or

  删除所有deleteByQuery("*:*");

  3.提交

  Solr的查询:

  1.创建solr服务

  成都java短期培训班:Lucene和solr基础使用介绍

  2.创建查询语句对象 SolrQuery

  3.设置查询关键词

  4.执行query对象

  5.获取结果集(拿到的是一个集合)

  6.遍历

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56