全文检索步骤

数据分为两种:结构化数据和非结构化数据;

                    结构化数据:有规律的,固定格式,有限长度的,数据库,原文件等。

                    非结构化数据:没有固定格式,长度的,磁盘上的文件,这种数据不是很好查,可以使用全文检索;

全文检索: 将非结构化的数据中的一部分信息提取出来,重新组织,使其变得有一定结构,称为索引。先创建索引在对索引进行搜索的过程,叫全文检索。

全文检索采用的是倒排索引(通过词语找查找文档,再找文档名)的方式去查;

全文检索的手段:Lucene 是apache旗下的开放源代码的全文检索的工具包。

             Lucene使用流程:

                      1.创建索引

                               原始文档->获取文档->创建文档对象->分析文档->创建索引;

                       2.查询索引

                               创建索引接口->创建查询索引的对象->执行查询->渲染结果; 

 1、创建索引
       场景:给磁盘的文件创建索引
       步骤:
         1、指定索引库位置   Directory
2、创建写入索引的对象   IndexWriter
3、获取源文档IO流
4、把文档写入索引库  indexWriter.addDocument(doc);
5、关闭资源IndexWriter                   



  2、查询索引步骤
     1、指定索引库的位置 Directory
     2、创建读取索引对象 IndexWriter
     3、创建查询索引对象 IndexSearcher
     4、执行查询方法  search方法
     5、获取查询结果 TopDocs

     6、关闭资源IndexWriter


    

分词器  Analyzer 每个分词器tokenStream方法
  Analyzer analyzer = new StandardAnalyzer(); //英文按照空格分词,中文一个字一个字
Analyzer analyzer = new CJKAnalyzer();  //中文两个字两个字
需要导入lucene-analyzers-smartcn-4.10.3.jar
Analyzer analyzer = new SmartChineseAnalyzer(); //中文还可以,但是英文容易出现缺字母

第三方分词器IK-Analyzer(推荐使用的,有两个配置文件)
需要导入jar IKAnalyzer2012FF_u1.jar

Analyzer analyzer = new IKAnalyzer();

分词器的使用时机;
1.创建索引库

2.查询时也会用到分词器

document就是一个网页,一个文档,或者一个表中的一条数据。
fileld  就是属性 相对一个表中的数据,一个域对于的就是一个列
分词器 IK-analyzer 中英文处理得当

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值