王劭阳的博客

你的指尖,有改变世界的力量!

Lucene笔记50-为留言管理项目引入Solr

主要就是改写,使用Solr改写之前的Lucene的写法。 项目代码请见百度云盘:链接: https://pan.baidu.com/s/1TTKDv3TJkTiUZHF0yXmeug 提取码: ys36。

2018-12-08 17:35:39

阅读数 68

评论数 0

Lucene笔记49-Lucene-Solr的增删查改和高亮

一、Solr的添加 test01(),test02(),test03()分别对应普通添加,List添加,JavaBean添加。 package com.wsy; import org.apache.solr.client.solrj.SolrQuery; import org.apache...

2018-12-08 17:05:44

阅读数 24

评论数 0

Lucene笔记48-Lucene-Solr的基本应用

一、SolrJ的使用 导入相关jar包,打开solr-3.5/dist/solrj-lib,找到下面五个文件:commons-codec-1.5.jar,commons-httpclient-3.1.jar,commons-io-1.4.jar,jcl-over-slf4j-1.5.5.jar,...

2018-12-08 01:51:49

阅读数 14

评论数 0

Lucene笔记47-Lucene-Solr的安装

一、Solr的下载 Solr是对Lucene的封装,让开发人员使用更加的方便,这里我们下载3.5版本的Solr。点击这里下载Solr3.5版本。 二、Solr的启动 把刚刚下载的Solr解压之后,在example文件夹中有一个start.jar文件,我们使用java -jar start.j...

2018-12-03 00:03:28

阅读数 19

评论数 0

Lucene笔记46-Lucene在留言项目中添加高亮(不存储内容的操作方式)

在索引的时候,如果不存储内容,怎么显示高亮呢?我们只能通过二次查询来解决。 一开始,我们通过id来查询对应的留言内容,会发现,如果要显示的记录是N条,就需要查询N次,频繁连接数据库的昂昂不合适,所以可以更改SQL语句,使用in的方式来查询,这样一次就可以查询出来了。 项目代码请见百度云盘:链接...

2018-12-01 21:31:59

阅读数 20

评论数 0

Lucene笔记45-Lucene在留言项目中添加高亮(内容会被存储)

主要讲解高亮的显示问题,可以参考Lucene笔记35-Lucene的扩展-高亮索引文件中的代码。 如果高亮信息是null,那么就展示原来的内容,否则,展示高亮后的内容。 下面考虑一个问题,如果留言的内容比较多,留言的内容如果不想存储,能不能实现高亮呢? 请看下一节。 项目代码请见百度云盘:...

2018-12-01 00:53:31

阅读数 17

评论数 0

Lucene笔记44-Lucene在留言项目中的使用(换一种思路解决重复问题)

因为留言信息和附件信息是两个文档,所以查询的时候,如果附件和留言信息中都有这个关键字,就会查询出来两个文档,实际上是一个文档,这个问题就要从创建索引的角度解决。如果一个留言中,有留言信息和附件,那么就将留言信息和附件存储到一个document中。将留言信息和附件存储到一个域中,对于这种一个域存储了...

2018-11-29 22:46:51

阅读数 29

评论数 0

Lucene笔记43-Lucene完成搜索功能(存在重复性的问题)

解决了一个搜索结果和展示效果不一致的问题,需要分开讨论附件和留言的问题。 项目代码请见百度云盘:链接: https://pan.baidu.com/s/1TTKDv3TJkTiUZHF0yXmeug 提取码: ys36。...

2018-11-29 08:30:22

阅读数 68

评论数 0

Lucene笔记42-Lucene解决了一些开发中存在的问题

主要提到了索引的重构,索引的提交,索引的清理。 可以看下IndexAction.java和IndexService.java中的代码。 项目代码请见百度云盘:链接: https://pan.baidu.com/s/1TTKDv3TJkTiUZHF0yXmeug 提取码: ys36。...

2018-11-28 22:42:47

阅读数 24

评论数 0

Lucene笔记41-Lucene在留言项目中的增加和删除索引功能

因为要做近实时搜索,所以一些对索引的add,delete,update操作,需要同步到数据库。 项目代码请见百度云盘:链接: https://pan.baidu.com/s/1TTKDv3TJkTiUZHF0yXmeug 提取码: ys36。...

2018-11-21 08:31:17

阅读数 57

评论数 0

Lucene笔记40-Lucene在项目中实现索引重构的功能

索引重构:将所有数据从数据库里取出来,创建相应的IndexField完成索引重构。这里就是将Message对象转换成IndexField对象。 项目代码请见百度云盘:链接: https://pan.baidu.com/s/1TTKDv3TJkTiUZHF0yXmeug 提取码: ys36。...

2018-11-21 07:50:14

阅读数 60

评论数 0

Lucene笔记39-Lucene在项目中的实现部分Service的功能

因为这一块的代码没有跟着视频敲下来,所以还是附上项目代码的链接吧,主要就是对索引的增删查改这些操作。 项目代码请见百度云盘:链接: https://pan.baidu.com/s/1TTKDv3TJkTiUZHF0yXmeug 提取码: ys36。...

2018-11-18 20:06:44

阅读数 35

评论数 0

Lucene笔记38-Lucene在项目中的实现分析

一、实时搜索中存在的问题 上一节我们提到NRT实时搜索,实时搜索的提交并不是实时的,可能要好几个小时才能提交一次,为什么搜索这么快呢,因为索引数据更新都在内存中实现的,那么,假设有这么一种情况,还没有提交,机器突然挂掉了,那硬盘上的数据还是旧的,就会存在数据不一致的问题了。现在有一个解决方案,那...

2018-11-18 17:25:42

阅读数 33

评论数 0

Lucene笔记37-Lucene如何通过NRTManager和SearchManager实现近实时搜索

一、思路分析 如何实现近实时搜索呢?每次更新完索引都commit?那恐怕太浪费资源了,当数据量非常庞大的时候,几乎不可能。这里有两种方案。 使用SearchManager来管理IndexSearcher对象,当发现索引更新之后,searchManager会调用maybeReopen()方法,来...

2018-11-18 00:50:05

阅读数 68

评论数 0

Lucene笔记36-Lucene运用到项目中-需求分析

一、需求分析 索引的目标 现在需要设计一个留言管理系统,我们需要对哪些字段建立索引呢? 留言的内容 留言的标题 留言的附件 索引的对象 索引的对象,要存放什么属性呢? messageId title summary createDate content:这里的content存...

2018-11-14 22:43:40

阅读数 17

评论数 0

Lucene笔记35-Lucene的扩展-高亮索引文件

一、对索引文件添加高亮 现在我们有一些索引文件,怎么对这些索引文件添加高亮呢?首先需要根据搜索域和值找到这篇文档,然后通过文档获取域值,再将域值交给highlighter进行加工并返回,这个时候,返回的值就是添加过高亮的了。 二、代码展示 package com.wsy; import ...

2018-11-11 18:45:32

阅读数 41

评论数 0

Lucene笔记34-Lucene的扩展-高亮基础

一、高亮显示用到的类 Fragmenter:拿到一个字符串之后,对字符串进行分段 QueryScorer:查询评分,将评分最高的展示给用户 Encoder:显示出来的文本有两种,一种是SimpleEncode(忽略掉HTML标签),一种是DefaultEncode(展示HTML标签) Fo...

2018-11-11 17:05:46

阅读数 34

评论数 0

Lucene笔记33-Lucene的扩展-使用Tika创建索引并进行搜索

一、使用Tika创建索引 之前创建索引的文档都是txt文件,现在有了Tika,我们就可以将pdf,word,html等文件,通过Tika提取出文本,之后创建索引,创建索引的写法和之前大致相似。只需要将content域对应的值做一下处理,之前是FileReader来读取,现在是使用Tika.par...

2018-11-10 15:51:23

阅读数 61

评论数 0

Lucene笔记32-Lucene的扩展-Tika的第二种使用方式

一、Tika的第二种使用方式 第二种使用方式更加的简单,官方文档说,相比于第一种,效率会有降低,下面来看代码。 // 文档上说效率没有前一种方式高 public String fileToTextEasy(File file) { Tika tika = new Tika(); ...

2018-11-09 08:13:15

阅读数 32

评论数 0

Lucene笔记31-Lucene的扩展-Tika介绍

一、Tika介绍 Tika是2008年由Apache组织开发的项目,主要用于打开不同的文档。Tika的下载请点击这里。在处理文档索引的时候,有时候会碰到pdf,html,word这种非纯文本的内容,这些内容怎么来建立索引呢,这就要用到Tika了,Tika像一个桥梁一样,连通了IndexWrite...

2018-11-09 07:13:48

阅读数 32

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭