lucene概念及注意事项

1.概念
     开发源代码的全文检索引擎工具包,提供完整的查询引擎、索引引擎、部分文本分析引擎;lucene的目的是为软件开发人员提供一个简单易用的工具包(jar),以方便的在目标系统中实现全文检索功能。

2.应用场景
     单机软件的搜索,站内搜索,垂直领域的搜索,专业搜索引擎公司

3.搜索数据方式
     顺序扫描法/倒排索引
     倒排索引:
          提取资源中关键信息,建立索引(目录)
          搜索时,根据关键字(目录),找到资源的位置
          文档编号、单次编号、倒排索引(单次词典和倒排文件)、单次词典、倒排文件
     单词-文档矩阵的基本模型

4.创建倒排索引过程
     4.1.提取文档中关键信息,并给文档编号
     4.2.将文档转换为纯文本(如果非文本格式则需要转换)
     4.3.对纯文本进行中文分词
     4.4.将文档id和词汇进行配对,保存为倒排序表

5.倒排索引结构
     5.1.基本:两张表
          5.1.1  文档编号 文档内容
          5.1.2  单词ID、单词、倒排列表(文档编号集合)
     5.2复杂倒排索引结构
          5.2.1  文档编号、文档内容
          5.2.2  单词ID、单词、倒排列表(文档编号+词条频率集合)
      5.3完整倒排索引结构(完备)
          5.3.1  文档编号、文档内容
          5.3.2  单词ID、单词、文档频率、倒排列表(文档编号+词条频率+文档中出现位置[分词后的位置])

6.lucene与搜索引擎的区别
     lucene是一套用java或其它语言写的全文检索工具吧,为应用程序提供了很多个api接口去调用;搜索引擎是一个全文检索系统,它是一个单独运行的软件系统。

7.lucne主要包
包名
功能
org.apache.lucene.analysis
语言分析器,主要用于的切词
Lucene提供的分析器实现类在:
lucene-analyzers-common-4.10.3.jar
org.apache.lucene.document
索引存储时的文档结构管理,类似于关系型数据库的表结构
org.apache.lucene.index
索引管理,包括索引建立、删除等
org.apache.lucene.queryParser
查询分析器,实现查询关键词间的运算,如与、或、非等, 生成查询表达式,
org.apache.lucene.search
检索管理,根据查询条件,检索得到结果
org.apache.lucene.store
数据存储管理,包括一些I/O操作
org.apache.lucene.util
公用类

8.lucene创建索引
     创建索引流程(将数据保存到索引库中,会对这些数据创建索引)
     步骤:
          1.创建Document对象(创建pojo)
          2.在Document对象中添加字段(设置pojo的属性值)
          3.创建建立索引的对象IndexWriter(sqlSession)
          4.通过IndexWriter将Document保存到索引库中(添加索引到索引库)(插入)

9.检索的流程
     9.1定义检索内容(查询的关键字)
     9.2将检索内容转换成Query对象
     9.3创建检索的对象(IndexSearcher)
     9.4通过IndexSearcher进行检索---search方法
     9.5检索完成后,返回一个结果集
     9.6遍历结果集

10.需要的jar包
     10.1 analysis -- 分词器
     10.2 core -- 核心包
     10.3 highlighter -- 高亮包
     10.4 queryparse -- 检索包

11.注意点
     11.1 是否存储与是否切词没有关系
     11.2 FSDirectory指定磁盘索引库,RAMDirectory指定内存索引库
     11.3 停用词是为了节省存储空间和提高搜索效率,搜索引擎在索引页面或处理搜索请求时会自动忽略的字或词(语气助词、副词、介词、连接词等)
     11.4 StandardAnalyzer按照中文一个字一个字进行分词,CJKAnalyzer为二分法分词,按照两个字进行切分,第三方中文分词器:IK-analyzer
     11.5 查询时用的分词器要与创建索引时所用分词器保持一致。
     11.6 QueryParser指定单个字段并分词检索,MultiFieldQueryParser指定多个字段并分词检索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值