架构深渊

慢慢走进程序的深渊……关注领域驱动设计、测试驱动开发、设计模式、企业应用架构模式……积累技术细节,以设计架构为宗。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

倒排索引技术

Posted on 2008-12-16 22:30  chen eric  阅读(1371)  评论(0编辑  收藏  举报
倒排索引技术主要应用与全文检索,通过对非主关键字的分析,建立内容与PK之间的关键。通过索引文件4 F3 b$ g, V, k* @" w  N+ h
存储后提供给应用高效的检索。) m  ^1 s6 s/ F* n# P
如果需要自己定制倒排索引器,算法应该实现如下的步骤:; u) Q: D# W3 h  q. e" p" ^

1.信息分析,对输入的数据项或者记录(P,K)中的K做一个过滤的词法和语法分析。+ J: M7 h2 v% w: z. M
主要对数据中非主关键字内容K进行分词,过滤,分析等获得一个内容关键字(k1,k2,k3....)集合
2.建立倒排关系,倒排所有和一般索引区别主要利用内容中的关键字建立和主关键字P的关系8 u* L) ~" ^$ i6 @
这样把数据向(P,K)分割成一个倒排关系集合(k1,p),(k2,p),(k3,p)....
3.建立倒排索引,有了上面的一系列的关系后,你可好把k1,k2看成主关键字,建立多k到pn的索引集合,形成(k1,(p1,p2,p3,....)),(k2,(p1,p2,p3,....))。www.dmresearch.net8 a( ]! ?8 ^# d: O) D
4.索引存储,把所有关键字k的索引集合用一种统一的数据结构存储., Z% X2 y+ A7 f9 S( z
5.优化机制.一般内存K形成的关键较大,这样形成索引集合比较大,一般需要加入一下优化处理的机制.例如压缩技术.这可以参考Lucence的实现(把关键词压缩为<前缀长度,后缀)

6.[可选]应用接口.你实现了上述的算法,还必须提供一套接口(API)给应用程序使用.主要应用与全文检索,通过对非主关键字的分析,建立内容与PK之间的关键。通过索引文件4 F3 b$ g, V, k* @" w  N+ h
存储后提供给应用高效的检索。) m  ^1 s6 s/ F* n# P
如果需要自己定制倒排索引器,算法应该实现如下的步骤:; u) Q: D# W3 h  q. e" p" ^

1.信息分析,对输入的数据项或者记录(P,K)中的K做一个过滤的词法和语法分析。+ J: M7 h2 v% w: z. M
主要对数据中非主关键字内容K进行分词,过滤,分析等获得一个内容关键字(k1,k2,k3....)集合
2.建立倒排关系,倒排所有和一般索引区别主要利用内容中的关键字建立和主关键字P的关系8 u* L) ~" ^$ i6 @
这样把数据向(P,K)分割成一个倒排关系集合(k1,p),(k2,p),(k3,p)....
3.建立倒排索引,有了上面的一系列的关系后,你可好把k1,k2看成主关键字,建立多k到pn的索引集合,形成(k1,(p1,p2,p3,....)),(k2,(p1,p2,p3,....))。www.dmresearch.net8 a( ]! ?8 ^# d: O) D
4.索引存储,把所有关键字k的索引集合用一种统一的数据结构存储., Z% X2 y+ A7 f9 S( z
5.优化机制.一般内存K形成的关键较大,这样形成索引集合比较大,一般需要加入一下优化处理的机制.例如压缩技术.这可以参考Lucence的实现(把关键词压缩为<前缀长度,后缀)

6.[可选]应用接口.你实现了上述的算法,还必须提供一套接口(API)给应用程序使用.