lucene&solr全文检索_1引入

在用百度或者其他浏览器的时候我们经常会输入一个字段,然后会显示包含该字段的内容例如:

lucene&solr全文检索_1引入_第1张图片

 

 然后再点击搜索,你所所搜的字段会按出现次数递减排序出来并且以红字标识:

lucene&solr全文检索_1引入_第2张图片

 

 这时候就需要用lucene了,我们可以用数据库进行搜索,很容易实现,通常都是用sql语句进行搜索,而且能很快的搜索到结果,但是为什么很快呢,那是因为数据库中的数据储存是有规律的,有行有列且数据格式数据长度都是固定的。

 

  数据分类:数据分为两类,结构化数据和非结构化数据。

  结构化数据:指具有固定格式和有限长度的数据,如数据库,元数据等。

  非结构化数据:指不定长度或者无格式的数据,如邮件、word文档等磁盘上的文件。

 

 

  而对结构化数据的查询非常的方便,但是对非结构数据的查询有以下几个方法:

 

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

    比如查找内容包含一个字符串的文件,那么顺序扫描就是一个一个文档的查找,对于每一个文档从头看到尾,如果包含该字符串,则此文档为我们要查找的文档,然后接着看下一个文档,直至扫描完所有的文件,虽然能完成但是速度太慢了。

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

    将非结构化数据的一部分信息提取出来,重新组织,使其变的有一定结构,然后对此具有一定结构的数据进行搜索,从而达到相对较快的目的,这部分从非结构化数据中提取出来然后重新组织的信息,我们称为索引。

    例如字典,按偏旁部首和拼音来查询就是相当于字典的索引。这种先建立索引再进行搜索的过程就叫全文检索。虽然建立索引的时间比较长,但是索引一旦创建可以多次使用,因此从长远来看速度要更快。

 

    如何实现全文检索:

      介意使用lucene实现全文检索,lucene是apache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和搜索引擎,部分文本分析引擎。lucene的目的是软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索。

    全文检索的应用场景:

      对于数据量大,数据结构不固定的数据可采用全文检索的方式,比如百度,google等搜索引擎,电商网站站内搜索等。

你可能感兴趣的:(lucene&solr全文检索_1引入)