全文搜索引擎,索引库

 

全文搜索引擎的工做原理理论上很简单,关键技术就是“分词”,算法

 

  1. “索引库”:使用分词技术把“文档数据”按分词拆分,也就是一个文档拆分为多个分词(一条普通数据拆分为多个词的索引数据)。这个结构就造成了“索引库”,索引库存储的数据就叫索引(索引数据)(因此当普通数据发生变化的时候,与之所对应的索引也要变化,这里就涉及到自动实时更新索引,自动定时更新索引,仍是手动更新索引,还有是增量更新索引,仍是彻底重建索引)。
  2. 用户输入搜索关键字后,首先须要处理的是这个关键字,须要把这个关键字拆分,拆分的技术仍是使用分词拆分,把搜索关键字拆分红一个或者多个有意义的字词。
  3. 而后用这些字词去“索引库”中查询,此时的like实际上是变成等于操做,而后返回结果。说白了全文搜索就是经过对内容分词把like变成等,固然数据的存储结构通常为非结构型数据文档结构

 

文本数据:Lucene.Net只能对文本信息进行检索,因此非文本信息要么转换成为文本信息,要么你就死了这条心吧!数据库

  分词算法:将一句完整的话分解成若干词汇的算法  常见的一元分词(Lucene.Net内置就是一元分词,效率高,契合度低),二元分词,基于词库的分词算法(契合度高,效率低)...搜索引擎

  切词:将一句完整的话,按分词算法切成若干词语spa

       好比:"不是全部痞子都叫一毛" 这句话,若是根据一元分词算法则被切成: 不 是 所 有 痞 子 都 叫 一 毛 blog

     若是二元分词算法则切成: 不是 是所 全部 有痞 痞子 子都 都叫 叫一  一毛索引

     若是基于词库的算法有可能:不是 全部 痞子 都叫 一毛 具体看词库文档

  索引库:就是存储索引数据的库,简单的理解成一个提供了全文检索功能的数据库(把须要全文检索的数据存入索引库),见下图所示:效率

相关文章
相关标签/搜索