全文搜索技术

背景

我们生活中的数据总体是分为两种的:结构化数据和非结构化数据。

  1. 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。
  2. 非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等磁盘上的文件
数据查询
  1. 结构化数据
    结构化数据的查询我们可以通过数据库中存储数据,通过sql语句进行查找。
  2. 非结构化数据
    对于数据量大、数据结构不固定的非结构化数据,我们可采用全文检索方式搜索,比如百度、Google等搜索引擎、论坛站内搜索、电商网站站内搜索等。
全文检索

一、 定义
先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。
虽然创建索引的过程也是非常耗时的,但是索引一旦创建就可以多次使用,全文检索主要处理的是查询,所以耗时间创建索引是值得的。

例如:字典。字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结构化的,如果字典没有音节表和部首检字表,在茫茫辞海中找一个字只能顺序扫描。然而字的某些信息可以提取出来进行结构化处理,比如读音,就比较结构化,分声母和韵母,分别只有几种可以一一列举,于是将读音拿出来按一定的顺序排列,每一项读音都指向此字的详细解释的页数。我们搜索时按结构化的拼音搜到读音,然后按其指向的页数,便可找到我们的非结构化数据——也即对字的解释。

二、 实现
Lucene:Lucene是apache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。我们所熟知的全文检索引擎Solr和ES都是基于Lucene的。

1、确定原始内容即要搜索的内容->采集文档->创建文档->分析文档->索引文档
2、用户通过搜索界面->创建查询->执行搜索,从索引库搜索->渲染搜索结果

创建索引:没看懂,没理解到,有兴趣的看原文

三、 开源企业级搜索引擎
ES:ES也就是Elasticsearch,是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。

原文:https://my.oschina.net/u/4187920/blog/4424678

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值