zoukankan      html  css  js  c++  java
  • Lucene实现全文检索的流程

    1.1. 索引和搜索流程图

      

      1、绿色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,

        索引过程包括:确定原始内容即要搜索的内容->采集文档->创建文档->分析文档->索引文档

      2、红色表示搜索过程,从索引库中搜索内容,

        搜索过程包括:用户通过搜索界面->创建查询->执行搜索,从索引库搜索->渲染搜索结果

    1.2. 创建索引

      对文档索引的过程,将用户要搜索的文档内容进行索引,索引存储在索引库(index)中。

      这里我们要搜索的文档是磁盘上的文本文件,凡是文件名或文件内容包括关键字的文件都要找出来,这里要对文件名和文件内容创建索引。

    1.1.1.   创建文档对象

      获取原始内容的目的是为了索引,在索引前需要将原始内容创建成文档(Document),文档中包括一个一个的域(Field),域中存储内容。

      可以将磁盘上的一个文件当成一个document,Document中包括一些Field(file_name文件名称、file_path文件路径、file_size文件大小、file_content文件内容),如下图:

      每个Document可以有多个Field,不同的Document可以有不同的Field,同一个Document可以有相同的Field(域名和域值都相同)

      每个文档都有一个唯一的编号,就是文档id。

    1.1.2.   分析文档

      将原始内容创建为包含域(Field)的文档(document),需要再对域中的内容进行分析,分析的过程是经过对原始文档提取单词、将字母转为小写、去除标点符号、去除停用词等过程生成最终的语汇单元,可以将语汇单元理解为一个一个的单词。

    1.1.3.   创建索引

      对所有文档分析得出的语汇单元进行索引,索引的目的是为了搜索,最终要实现只搜索被索引的语汇单元从而找到Document(文档)。

      注意:创建索引是对语汇单元索引,通过词语找文档,这种索引的结构叫倒排索引结构

      一般的方法是根据文件找到该文件的内容,在文件内容中匹配搜索关键字,这种方法是顺序扫描方法,数据量大、搜索慢。

      倒排索引结构是根据内容(词语)找文档,如下图:

      倒排索引结构也叫反向索引结构,包括索引和文档两部分,索引即词汇表,它的规模较小,而文档集合较大。

    1.3. 查询索引

      查询索引也是搜索的过程。搜索就是用户输入关键字,从索引(index)中进行搜索的过程。根据关键字搜索索引,根据索引找到对应的文档,从而找到要搜索的内容(这里指磁盘上的文件)。

  • 相关阅读:
    中国历史朝代公元对照简表
    [Solved] DashBoard – Excel Service: The data sources may be unreachable, may not be responding, or may have denied you access.
    Delete/Remove Project from TFS 2010
    Sharepoint site showing system account instead of my username on the top right corner.
    你的成功在于你每天养成的习惯
    Internet Information Services is running in 32bit emulation mode. Correct the issue listed above and rerun setup.
    Prepare to back up and restore a farm (Office SharePoint Server 2007)
    Word中字号与磅值的对应关系
    How to: Change the Frequency for Refreshing the Data Warehouse for Team System
    UI Automation in WPF/Silverlight
  • 原文地址:https://www.cnblogs.com/fengcha0/p/9978206.html
Copyright © 2011-2022 走看看