博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lucene
阅读量:5077 次
发布时间:2019-06-12

本文共 1325 字,大约阅读时间需要 4 分钟。

Lucene是apache旗下的顶级项目,是一个全文检索工具包。

Lucene就是一个可以创建全文检索引擎系统的一堆jar.可以使用它来构建全文检索引擎系统,但是它不能独立运。

 

全文检索引擎系统

 

放在tomcat下可以独立运行,对外提供全文检索服务.

 

Lucene应用领域

 

  1. 互联网全文检索引擎(比如百度,  谷歌,  必应)
  2. 站内全文检索引擎(淘宝, 京东搜索功能)
  3. 优化数据库查询(因为数据库中使用like关键字是全表扫描也就是顺序扫描算法,查询慢)

 

 

Lucene下载

官方网站: 

版本:lucene4.10.3

Jdk要求:1.7以上

IDEEclipse

 

Lucene结构

 

 

 

索引:

 

域名:词  这样的形式,

 

它里面有指针执行这个词来源的文档

 

 

 

索引库: 放索引的文件夹(这个文件夹可以自己随意创建,在里面放索引就是索引库)

 

Term词元: 就是一个词, lucene中词的最小单位

 

 

Document对象,一个Document中可以有多个Field域对象,Field域对象中是key   value键值对的形式:有域名和域值,

 

一个document就是数据库表中的一条记录, 一个Filed域对象就是数据库表中的一行一列

 

这是一个通用的存储结构.

 

 

 

创建索引和所有时所用的分词器必须一致

 

 

域的详细介绍

 

是否分词:

 

分词的作用是为了索引

 

需要分词: 文件名称, 文件内容

 

不需要分词: 不需要索引的域不需要分词,还有就是分词后无意义的域不需要分词

 

  比如: id, 身份证号

 

 

 

是否索引:

 

索引的的目的是为了搜索.

 

需要搜索的域就一定要创建索引,只有创建了索引才能被搜索出来

 

不需要搜索的域可以不创建索引

 

需要索引: 文件名称, 文件内容, id, 身份证号等

 

不需要索引: 比如图片地址不需要创建索引, e:\\xxx.jpg

 

因为根据图片地址搜索无意义

 

 

 

是否存储:

 

存储的目的是为了显示.

 

是否存储看个人需要,存储就是将内容放入Document文档对象中保存出来,会额外占用磁盘空间, 如果搜索的时候需要马上显示出来可以放入document中也就是要存储,这样查询显示速度快, 如果不是马上立刻需要显示出来,则不需要存储,因为额外占用磁盘空间不划算.

 

 

 

 

搜索

 

TermQuery:

 

根据词进行搜索(只能从文本中进行搜索)

 

QueryParser:

 

根据域名进行搜索,可以设置默认搜索域,推荐使用. (只能从文本中进行搜索)

 

NumericRangeQuery:

 

从数值范围进行搜索

 

BooleanQuery:

 

组合查询,可以设置组合条件,not and or.从多个域中进行查询

 

must相当于and关键字,是并且的意思

 

should,相当于or关键字或者的意思

 

must_not相当于not关键字, 非的意思

 

注意:单独使用must_not  或者 独自使用must_not没有任何意义

 

MatchAllDocsQuery:

 

查询出所有文档

 

MultiFieldQueryParser:

 

可以从多个域中进行查询,只有这些域中有关键词的存在就查询出来.

 

转载于:https://www.cnblogs.com/mr-chuang/p/10070590.html

你可能感兴趣的文章
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
IOS-图片操作集合
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
团队项目开发客户端——登录子系统的设计
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
session如何保存在专门的StateServer服务器中
查看>>