分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

lucene

发布时间:2023-09-06 02:25责任编辑:蔡小小关键词:暂无标签

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

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

全文检索引擎系统

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

Lucene应用领域

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

Lucene下载

官方网站:http://lucene.apache.org/ 

版本:lucene4.10.3

Jdk要求:1.7以上

IDE:Eclipse

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:

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

lucene

原文地址:https://www.cnblogs.com/mr-chuang/p/10070590.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved