全文检索概述

1. 全文检索

    根据数据是否规整,可以将数据分为两类:

        结构化数据:规定数据类型、格式和长度等;典型是关系型数据库中的表数据。

        非结构化数据:没有规定数据类型、格式等信息;典型的是邮件数据,可以在一封邮件中存在字符串、图片、报表等不同信息。

    非结果化数据查询方式:

        (1)顺序扫描法(Serial Scanning):

                顺序查找,速度慢。

                例如在一个文件夹存在多个文件,同时在文件搜索一个字符串”全文检索“,顺序扫描是按照某个规则(比如文件名)依次打开文件,如果文件存在这个字符串 说明是要查找的文件,接着在打开下面的文件,直到扫描完所有的文件。

       (2)全文检索(Full-text Search)

               将非结构化数据中的一部分数据提取出来,重新组织成一定结构的数据(索引),在扫描时,只对这部分数据进行搜索,从而达到较快的目的。

               一定结构的数据组织是比较耗时的,但是会提高以后查询的速度。这种先建索引再查询的方式称为全文检索。

2.  常用的3款搜索引擎

    1.  Lucene 

        Lucene的开发语言是Java,是Java中最出名的开源搜索殷勤,是Java中标准的全文检索程序,提供完整的查询引擎和搜索引擎。

        Lucene不支持中文分词引擎,需要自己实现(IK、CJK、Smart)分词器,不支持实施搜索,不支持字符串范围搜索等。

    2. Solr

        Solr是Java开发的企业级搜索应用服务器,基于Lucene全文搜索服务器,提供API接口。

        Lucene专注于搜索底层的建设,而Solr专注于企业应用。

    3. Elasticsearch

        Elasticsearch是一个采用java语言开发的,基于Lucene构造的开源,分布式的搜索引擎. 设计用于云计算中,能够达到实时搜索,稳定可靠.。

        Elasticsearch的数据模型是JSON.

3.  目录

    全文检索共分基础部分和进阶部分两部分,基础部分主要了解并可以使用3种引擎,进阶部分是再基础部分的基础上对高级功能及源码级别的解读。

    基础部分:

        lucene基础

          第一篇:Lucene介绍与下载

        solr基础

        elasticsearch基础

    进阶部分:

posted @ 2019-01-09 17:28  i孤独行者  阅读(173)  评论(0)    收藏  举报