zoukankan      html  css  js  c++  java
  • 全文搜索引擎,索引库

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

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

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

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

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

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

         如果二元分词算法则切成: 不是 是所 所有 有痞 痞子 子都 都叫 叫一  一毛

         如果基于词库的算法有可能:不是 所有 痞子 都叫 一毛 具体看词库

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

  • 相关阅读:
    ThinkPHP 3.2.3
    MobaXterm 可替代 XShell4 和 Xftp4
    SourceTree 合并DEV分支到master
    WOX 和 everything 差不多,挺不错也
    function 的入参 如果是指针的话,如果你用的好的话,会颠覆三观啊 这里就是指对象,数组不用考虑 // 夏娃的苹果
    buildFast.js node.js 快速发布到gitee上,这样就不用每次点击,并且自动弹出发布页面,再点击发布,完美!
    velocity.js
    【linux之sed及vim】
    linux curl命令详解
    哈夫曼(huffman)树和哈夫曼编码
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/9273925.html
Copyright © 2011-2022 走看看