lucene原理

http://www.programgo.com/article/81033150113/

Lucene原理

 


 

1 反向索引

_       字符串到文件的映射

 


左边的称为“字典”,用户要搜索的词语,而右边就是所有包含该次的文档的list,称为“倒排表posting List”.查找lucene和solr就3步

1.     查找包含lucene关键字的文档链表

2.     查找包含solr关键字文档链表

3.     合并链表中相同的

_       相对扫描多了个索引过程,但是对于大数据索引只要创建一次,索引的更新可以是增量的。

 

 

2 创建索引

2.1 索引文档建立(txt,doc,xsl等)

4.     文档可以使pdf,doc,xsl,txt等格式

5.     lucene的基本是纯全本,我接触的

6.     从数据库中导入数据建立索引

2.2 对文档进行分词(中文分词,英文分词等)

中文分词组件:

中文分词算法分类:

http://www.cnblogs.com/lvpei/archive/2010/08/04/1792409.html

http://www.iteye.com/news/9637

 

2.3 对词语进行语言处理(还原词语如cars->car,去掉停用词等)

2.4 索引创建

2.4.1 利用词语(Term)创建字典

_       Term词语对应的document的id

_       


 

_       对字典安装字母排序

         


 

_       合并相同的词,统计词频等

       


 

   Document frequery是该词语出现在多个个文档中

   frequery是改词语在每个文档中出现的次数

2.4.2 对字典按字母排序

2.4.3 合并相同的词(Term)成为文档倒排(Posting List)链表

3 搜索索引

3.1 输入查询语句(lucene and solr)

3.2 对查询语句进行语法,词法,语言处理

3.2.1 词法分析,分析出单词和关键字

3.2.2 语法分析,根据查询语法构造语法树

3.2.3 语言处理同索引过程中的语言处理几乎相

3.3 搜索索引,等到符合语法树的文档

3.4 对搜索结果排序

_       搜索中主要的词有不重要的词

_       一个词的权重计算过程

1.           Term Frequency (tf):即此Term 在此文档中出现了多少次。tf 越大说明越重要。

2.           Document Frequency (df):  即有多少文档包含次Term。df 越大说明越不重要。

3.          


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值