全文检索主要应用领域:搜索引擎(百度,搜狗)、站内搜索(微博搜索)、电商网站(京东,淘宝)
现在不缺乏做java的人,但是缺乏有互联网背景的做Java的人。具有互联网技术的Java人才。比如说大数据,高并发,全文搜索这肯定也是。全文检索也是一个典型的互联网技术。你SSH叫做互联网技术吗?是吧。只要做Java项目都能用。只有掌握一到两门的互联网技术你找工作你才有砝码。
全文检索还有一个应用:搜索硬盘的文件。歌词名称各不一样,歌词内容乱七八糟。全文检索处理的是非机构化的数据。这次视频仅仅是对文本文件的处理,不涉及声音和图片。但是还有一种比较特殊的叫XML和HTML,XML你说它没格式它也有格式,你可以把它导入数据库中,也可以把它当做一个文本文件来处理。这种格式的文档把它叫做半结构化数据,也可以把它导入数据库中按结构化数据来处理,也可以把它看做是一个文本文档使用全文检索的方式来处理,作为分级化数据来处理。
建索引,数据库中也可以建立索引,查询一个字符串,在这个字符串数据类型上建索引也没有问题。但是你在这个字符串上建立索引的时候,你用like查询的时候,能用索引吗?也不能说全部都用不上啊。假如没有前面那个%,就是like "XXXX%",它是可以走索引的。但是你建立索引的这个字符串的长度mysql是有限制的,整个字段的长度不能超过128个字符,太长了它就没有办法建立索引。
先把文档分词,先对它进行分析,分词之后把分析出来的关键词建立索引,查询的时候根据这些词进行查询,查了这个词对应哪些文档?你就能查出来了。所以跟文档并没有关系,查了词再查文档,这样的话我查的时候就要查索引啊,查询速度加快。
全文检索和数据库like查询的区别
1.数据库like:结构化数据
全文检索:非结构化数据
2.搜索原理:
数据库:顺序扫描
全文检索:先分词,然后再查询索引,根据索引找到文档。
3.搜索效果:
数据库like:准确度低
全文检索:准确度高
排序:
数据库:或者是升序或者是降序。
全文检索:根据相关度进行排序。