全文检索步骤

本文介绍了数据类型中的结构化与非结构化数据,并详细解释了如何利用全文检索技术处理非结构化数据。重点介绍了Apache Lucene的工作原理及流程,包括创建索引和查询索引的具体步骤,并对比了几种不同的分词器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

全文检索的手段: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 中英文处理得当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值