Lucene(一):数据库搜索弊端以及全文搜索的概念

生活中的搜索

相关的搜索实际上无处不在,比如百度的搜索,Ecplise中的Help搜索,Windows系统中的文件搜索等

我们通常从搜索结果中经常发现有这么一种规律:越是符合条件的搜索结果会放在前面,不太符合条件的搜索结果会排在后面,并且通常会设置字体高亮

数据库检索带来的麻烦

假如我们要进行一次搜索:

场景一:

select * from content where title like '%目标字段';

但是这样搜索会有一个麻烦,就是在数据库中通过like进行模糊查询的话,会让索引失效

场景二:

select * from content where title like '%ant%'

搜索效果不太理想,比如我们想要搜索ant( 蚂蚁),但是搜索出了过多的结果出来,并且我们最想要的结果排在稍后的位置,并没有相关度的排序,客户更想要的是相关度最接近的排在最前面

在这里插入图片描述

而要解决这些问题,就要依靠Lucene了

什么是全文检索?

说全文检索之前,必须先说下数据的分类:

  • 结构化数据
  • 半结构化数据
  • 非结构化数据

结构化数据:指的是有固定格式或有限长度的数据,如数据库

半结构化数据:如XML,HTML,它们有自己的标签比如< XX></ XX>,但是< XX>里面写多写少,全看具体需求

非结构化数据;比如word文档,邮件等

非结构化数据有一种叫法叫"全文数据",从全文数据中进行检索就叫全文检索

特点就是:只关注文本,不关心语义

应用场景:比如百度搜索,你去搜索一个“麦当劳在哪里?”,搜索引擎并不会直接给予答案,而是去搜索标题里面含有"麦当劳在哪里"的网页

猜你喜欢

转载自blog.csdn.net/fenghuoliuxing990124/article/details/85268949